﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Logik;
using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection;
using System.Data.SqlClient;
using Databas;
using System.Windows.Forms.DataVisualization.Charting;


namespace Suprojekt
{

    public partial class Applikation : Form
    {
        private DateTime utskriftsdatum;
        private Logikhantering logikhantering = new Logikhantering();
        public SqlConnection SQL = new SqlConnection();

        private int valtAgenturnummer = 0;
        private int behorighet = 333;
        private string sjukOolycksfall = "No";
        private string hojningLiv = "No";
        private string sjukskrivning = "No";
        private int ftagareID;
        string typavforsakring;
        bool kontroll = false;
        double grundbelopp;
        double tillval1;
        double tillval2;
        decimal SjukOlyckGrundbelopp;
        decimal SjukskrivGrundbelopp;
        decimal LivsGrundbelopp;
        decimal Grundbelopp;
        
        //Egen klass för att tagga och lista agenturnr m.m. i comboboxer
        public class ListItem
        {
            private string name;
            private Object tag;

            public ListItem(string name, Object tag)
            {
                this.name = name;
                this.tag = tag;
            }
            public override string ToString()
            {
                return name.ToString();
            }
        }

        public TextBox SetTextboxInloggad()
        {
            return this.textBox1;
        }

        public Label OmInloggad()
        {
            return this.label69;
        }
        
        public Label geAgentNr()
        {
            return this.label104;
        }

        public Label BehorighetsId()
        {
            return this.label70;
        }
        
        private void Applikation_Load(object sender, EventArgs e)
        {
            ComboBoxTillval();
            listaAnställdaICombobox();
        }
        
        public Applikation()
        {
            InitializeComponent();
            Start();
        }
        
        //Används vid start av programmet
        public void Start()
        {

            //kör "true" om du vill hoppa över inloggningen
            tabControl1.Visible = false;

            loggaUtToolStripMenuItem1.Visible = false;
            loggaInToolStripMenuItem1.Visible = true;

            //hjälp text för behörighetshantering groupbox
            //titel och ikonen för definitioner
            toolTip1.ToolTipTitle = "Personalen som denna befattning/behörighet kan;";
            toolTip1.ToolTipIcon = ToolTipIcon.Info;
            //definitioner för varje val
            toolTip1.SetToolTip(radioButtonVD, " En VD kan i princip använda alla funktioner \n och nå till all information i programmet.");
            toolTip1.SetToolTip(radioButtonFChef, " En Försäljningschef kan i princip använda alla funktioner \n och nå till all information i programmet, \n bara förutom kundprospekt.");
            toolTip1.SetToolTip(radioButtonFörsäljningsassistent, " En Försäljningsassistent kan bara registrera grunduppgifter,\n registrera försäkringar och kan allt som en säljare kan ");
            toolTip1.SetToolTip(radioEkonomiassistent, " En  ekonomiassistent kan hantera anställda,\n  teckna försäljning och skriv ut provisioner ");
            toolTip1.SetToolTip(radioButtonSäljare, " En säljare kan alla sökfunktioner i hela programmet men inte fliken kundprospekt ");
            toolTip1.SetToolTip(radioButtonAdmin, " En administratör kan bara ändra befattning/behörighet för en anställd. ");
        }
        //Lägger till AgenturNr i ComboBoxen
        private void listaAnställdaICombobox()
        {
            FPcomboBoxAgenturNr.Items.Clear();

            List<Anstalld> ListaAnstallda = logikhantering.HamtaAllaAnstallda();
            for (int i = 0; i < ListaAnstallda.Count; i++)
            {
                string[] objekt = new string[1];
                objekt[0] = ListaAnstallda[i].agenturNr.ToString();
                ListItem t = new ListItem(objekt[0], ListaAnstallda[i]);
                FPcomboBoxAgenturNr.Items.Add(t);
                FOcomboBoxAgenturNr.Items.Add(t);
                FFcomboBoxAgenturNummer.Items.Add(t);
            }
        }
        //Lägger till Grundbelopp i Tillval ComboBoxer
        private void ComboBoxTillval()
        {
            FPcomboBoxSjukOlyckGrundbelopp.Items.Clear();

            List<ForsakringsUtbud> Sjuk = logikhantering.HamtaGrundbeloppTillvalSjuk();
            for (int i = 0; i < Sjuk.Count; i++)
            {
                string[] objekt = new string[1];
                objekt[0] = Sjuk[i].grundbelopp.ToString();
                ListItem t = new ListItem(objekt[0], Sjuk[i]);
                FPcomboBoxSjukOlyckGrundbelopp.Items.Add(t);
                TFcomboBoxTillval1.Items.Add(t);
            }

            FPcomboBoxSjukskrivGrundbelopp.Items.Clear();
            List<ForsakringsUtbud> SjukErsattning = logikhantering.HamtaGrundbeloppTillvalSjukErsattnig();
            for (int i = 0; i < SjukErsattning.Count; i++)
            {
                string[] objekt = new string[1];
                objekt[0] = SjukErsattning[i].grundbelopp.ToString();
                ListItem f = new ListItem(objekt[0], SjukErsattning[i]);
                FPcomboBoxSjukskrivGrundbelopp.Items.Add(f);
                TFcomboBoxTillval2.Items.Add(f);
            }
        }
       
        #region Meny

        private void arkivToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (loggaInToolStripMenuItem1.Visible == true)
            {
                loggaUtToolStripMenuItem1.Visible = false;
            }
            if (loggaUtToolStripMenuItem1.Visible == true)
            {
                loggaInToolStripMenuItem1.Visible = false;
            }
        }

        private void loggaInToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            Login loggain = new Login(this);
            loggain.ShowDialog();


            if (label69.Text == "JA")
            {
                behorigetMetod(Convert.ToInt64(label70.Text));
                tabControl1.Visible = true;
                loggaUtToolStripMenuItem1.Visible = true;
                loggaInToolStripMenuItem1.Visible = false;
                textBoxNotifier.Text = "Du har nu loggat in";
            }


        }

        private void loggaUtToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            logikhantering.LoggaUt();
            tabControl1.Visible = false;
            textBoxNotifier.Text = "Du har nu loggat ut";
            tabControl1.Visible = false;

            loggaUtToolStripMenuItem1.Visible = false;
            loggaInToolStripMenuItem1.Visible = true;


        }

        private void avslutaToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void omSkapandetToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Vi är fyra studenter på HIT på Högskolan i Borås som läser kursen Systemutvecklingsprojektet. \nVi har fått i uppgift att skapa ett program som skall underlätta informationsflödet i företaget FörsäkringsByrån AB.", "Om");
        }

        private void supportToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            //MessageBox.Show("För tillfället finns det ingen support för programmet, var vanligen att vända er mot manualen");
            string support = "F:\\Dokument\\Visual Studio 2010\\Projects\\Suprojekt\\Projektet\\AnvändarManual - TabortInte\\Användarmanual.pdf";
            System.Diagnostics.Process.Start(support);
        }

        #endregion

        #region Anstalld

        //Spara en anställd
        private void AnstalldBtnSpara_Click(object sender, EventArgs e)
        {
            try
            {
                if (String.IsNullOrEmpty(AnstalldtxtBoxFornamn.Text) == true || String.IsNullOrEmpty(AnstalldtxtBoxEfternamn.Text) == true || String.IsNullOrEmpty(AnstalldtxtBoxPersonNr.Text) == true
                    || String.IsNullOrEmpty(AnstalldtxtBoxAdress.Text) == true || String.IsNullOrEmpty(AnstalldtxtBoxPostNr.Text) == true || String.IsNullOrEmpty(AnstalldtxtBoxTeleNr.Text) == true
                    || String.IsNullOrEmpty(AnstalldComboBoxValjAnstalldTelTyp.Text) == true || String.IsNullOrEmpty(AnstalldtxtBoxAgenturNr.Text) == true || String.IsNullOrEmpty(AnstalldtxtBoxSkattesats.Text) == true
                    || String.IsNullOrEmpty(AnstalldtxtBoxBefattning.Text) == true || String.IsNullOrEmpty(AnstalldtxtBoxLosenord.Text) == true || String.IsNullOrEmpty(AnstalldtxtBoxEpost.Text) == true)
                {
                    MessageBox.Show("Du måste fylla i alla fält");
                    return;
                }

                if (!String.IsNullOrEmpty(AnstalldtxtBoxPersonNr.Text) == true)
                {
                    string[] omvandla = new string[] { AnstalldtxtBoxPersonNr.Text };
                    bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera personnummret, skriv med 10 siffror";
                        return;
                    }
                }
                else { }

                if (!String.IsNullOrEmpty(AnstalldtxtBoxPostNr.Text) == true)
                {
                    string[] omvandla = new string[] { AnstalldtxtBoxPostNr.Text };
                    bool omvandlingLyckades = logikhantering.IntParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera postNr, ex: 12345 utan mellanslag";
                        return;
                    }
                }
                else { }

                if (!String.IsNullOrEmpty(AnstalldtxtBoxTeleNr.Text) == true)
                {
                    string[] omvandla = new string[] { AnstalldtxtBoxTeleNr.Text };
                    bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera telefonNr, skriv med siffror";
                        return;
                    }
                }
                else { }

                if (!String.IsNullOrEmpty(AnstalldtxtBoxAgenturNr.Text) == true)
                {
                    string[] omvandla = new string[] { AnstalldtxtBoxAgenturNr.Text };
                    bool omvandlingLyckades = logikhantering.IntParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera agenturNr, skriv med fyra siffor";
                        return;
                    }
                }
                else { }

                if (!String.IsNullOrEmpty(AnstalldtxtBoxSkattesats.Text) == true)
                {
                    string[] omvandla = new string[] { AnstalldtxtBoxSkattesats.Text };
                    bool omvandlingLyckades = logikhantering.DecimalParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera skattesatsen, ex; 0,28";
                        return;
                    }
                }
                else { }

                if (radioButtonAdmin.Checked == true || radioButtonFChef.Checked == true || radioButtonFörsäljningsassistent.Checked ||
                       radioButtonSäljare.Checked == true || radioButtonVD.Checked == true || radioEkonomiassistent.Checked == true)
                {
                    logikhantering.laggatillAnstalld(AnstalldtxtBoxFornamn.Text, AnstalldtxtBoxEfternamn.Text, long.Parse(AnstalldtxtBoxPersonNr.Text),
                        AnstalldtxtBoxAdress.Text, int.Parse(AnstalldtxtBoxPostNr.Text), int.Parse(AnstalldtxtBoxTeleNr.Text), AnstalldtxtBoxOrt.Text,
                        AnstalldComboBoxValjAnstalldTelTyp.Text, int.Parse(AnstalldtxtBoxAgenturNr.Text), decimal.Parse(AnstalldtxtBoxSkattesats.Text),
                        AnstalldtxtBoxBefattning.Text, AnstalldtxtBoxLosenord.Text, AnstalldtxtBoxEpost.Text, behorighet);
                    btnAnstalldRensa_Click(sender, e);
                    listaAnställdaICombobox();
                    listaUppAnstalld();
                    textBoxNotifier.Text = "En anställd är nu sparad";
                }
                else
                {
                    textBoxNotifier.Text = "Välj behörighet";
                }
            }
            catch
            { }
            //}
            //lägg till felhantering
            //updatera listviewn
            //AnstalldListView.BeginUpdate();
            //AnstalldListView.EndUpdate();
            //anropa knappen visa alla
            //AnstalldBtnVisaAlla_Click();
        }
        //Hämtar metoden lista upp anställda
        private void AnstalldBtnVisaAlla_Click(object sender, EventArgs e)
        {
            listaUppAnstalld();
        }
        //Skriv ut en vald anställd
        private void AnstalldBtnSkrivUt_Click(object sender, EventArgs e)
        {
            Microsoft.Office.Interop.Excel.Application xla = new Microsoft.Office.Interop.Excel.Application();
            xla.Visible = true;
            Microsoft.Office.Interop.Excel.Workbook wb = xla.Workbooks.Add(Microsoft.Office.Interop.Excel.XlSheetType.xlWorksheet);
            Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)xla.ActiveSheet;

            ws.Cells[1, 1] = "Förnamn";
            ws.Cells[1, 2] = "Efternamn";
            ws.Cells[1, 3] = "AgenturNr";
            ws.Cells[1, 4] = "PersonNr";
            ws.Cells[1, 5] = "Adress";
            ws.Cells[1, 6] = "PostNr";
            ws.Cells[1, 7] = "Ort";
            ws.Cells[1, 8] = "TelefonNr";
            ws.Cells[1, 9] = "Tele. Typ";
            ws.Cells[1, 10] = "E-post";
            ws.Cells[1, 11] = "Skattesats";
            ws.Cells[1, 12] = "Befattning";
            ws.Cells[1, 13] = "Behörighet";

            int i = 1, j = 2;

            foreach (ListViewItem lvi in AnstalldListView.SelectedItems)
            {
                i = 1;
                foreach (ListViewItem.ListViewSubItem lvsub in lvi.SubItems)
                {
                    ws.Cells[j, i] = lvsub.Text;
                    i++;
                }
                j++;
                AnstalldListView.Items.Clear();
            }
        }
        //uppdaterar en vald anställd
        private void btnUpdateraAnstalld_Click(object sender, EventArgs e)
        {
            AnstalldtxtBoxAgenturNr.Enabled = false;
            if (AnstalldListView.SelectedItems.Count == 1)
            {
                if (String.IsNullOrEmpty(AnstalldtxtBoxFornamn.Text) == true || String.IsNullOrEmpty(AnstalldtxtBoxEfternamn.Text) == true || String.IsNullOrEmpty(AnstalldtxtBoxPersonNr.Text) == true
                    || String.IsNullOrEmpty(AnstalldtxtBoxAdress.Text) == true || String.IsNullOrEmpty(AnstalldtxtBoxPostNr.Text) == true || String.IsNullOrEmpty(AnstalldtxtBoxTeleNr.Text) == true
                    || String.IsNullOrEmpty(AnstalldComboBoxValjAnstalldTelTyp.Text) == true || String.IsNullOrEmpty(AnstalldtxtBoxAgenturNr.Text) == true || String.IsNullOrEmpty(AnstalldtxtBoxSkattesats.Text) == true
                    || String.IsNullOrEmpty(AnstalldtxtBoxBefattning.Text) == true || String.IsNullOrEmpty(AnstalldtxtBoxLosenord.Text) == true || String.IsNullOrEmpty(AnstalldtxtBoxEpost.Text) == true)
                {
                    MessageBox.Show("Du måste fylla i alla fält");
                    return;
                }

                if (!String.IsNullOrEmpty(AnstalldtxtBoxPersonNr.Text) == true)
                {
                    string[] omvandla = new string[] { AnstalldtxtBoxPersonNr.Text };
                    bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera personnummret, skriv med 10 siffror";
                        return;
                    }
                }
                else { }

                if (!String.IsNullOrEmpty(AnstalldtxtBoxPostNr.Text) == true)
                {
                    string[] omvandla = new string[] { AnstalldtxtBoxPostNr.Text };
                    bool omvandlingLyckades = logikhantering.IntParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera postNr, ex: 12345 utan mellanslag";
                        return;
                    }
                }
                else { }

                if (!String.IsNullOrEmpty(AnstalldtxtBoxTeleNr.Text) == true)
                {
                    string[] omvandla = new string[] { AnstalldtxtBoxTeleNr.Text };
                    bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera telefonNr, skriv med siffror";
                        return;
                    }
                }
                else { }

                if (!String.IsNullOrEmpty(AnstalldtxtBoxAgenturNr.Text) == true)
                {
                    string[] omvandla = new string[] { AnstalldtxtBoxAgenturNr.Text };
                    bool omvandlingLyckades = logikhantering.IntParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera agenturNr, skriv med fyra siffor";
                        return;
                    }
                }
                else { }

                if (!String.IsNullOrEmpty(AnstalldtxtBoxSkattesats.Text) == true)
                {
                    string[] omvandla = new string[] { AnstalldtxtBoxSkattesats.Text };
                    bool omvandlingLyckades = logikhantering.DecimalParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera skattesatsen, ex; 0,28";
                        return;
                    }
                }
                else { }

                if (radioButtonAdmin.Checked == true || radioButtonFChef.Checked == true || radioButtonFörsäljningsassistent.Checked ||
                    radioButtonSäljare.Checked == true || radioButtonVD.Checked == true || radioEkonomiassistent.Checked == true)
                {
                    logikhantering.uppdateraAnstalld(AnstalldtxtBoxFornamn.Text, AnstalldtxtBoxEfternamn.Text, long.Parse(AnstalldtxtBoxPersonNr.Text),
                                AnstalldtxtBoxAdress.Text, int.Parse(AnstalldtxtBoxPostNr.Text), long.Parse(AnstalldtxtBoxTeleNr.Text), AnstalldtxtBoxOrt.Text,
                                AnstalldComboBoxValjAnstalldTelTyp.Text, int.Parse(AnstalldtxtBoxAgenturNr.Text), decimal.Parse(AnstalldtxtBoxSkattesats.Text),
                                AnstalldtxtBoxBefattning.Text, AnstalldtxtBoxLosenord.Text, AnstalldtxtBoxEpost.Text, behorighet);
                    btnAnstalldRensa_Click(sender, e);
                    AnstalldBtnVisaAlla_Click(sender, e);

                    textBoxNotifier.Text = "Listan är uppdaterad";
                }
                else
                {
                    textBoxNotifier.Text = "Välj behörighet";
                }
            }
            else
            {
                textBoxNotifier.Text = "Du måste välja en anställda i listviewn för att uppdatera";
            }
        }
        //Raderar en vald anställd
        private void AnstalldBtnRadera_Click(object sender, EventArgs e)
        {
            AnstalldtxtBoxAgenturNr.Enabled = false;
            try
            {
                if (AnstalldListView.SelectedItems.Count != 1)
                {
                    textBoxNotifier.Text = "Var god och välj en anställd";
                    return;
                }
                if (AnstalldListView.SelectedItems.Count == 1)
                {
                    logikhantering.taBortAnställd(long.Parse(AnstalldtxtBoxPersonNr.Text));
                    btnAnstalldRensa_Click(sender, e);                    
                    listaUppAnstalld();
                    textBoxNotifier.Text = "Du har nu raderat en anställd";
                }
                else
                {
                    textBoxNotifier.Text = "Du får bara välja EN anställd i listviewn för att radera";
                }
            }
            catch
            { }
        }
        //Rensar alla textboxar i anställd och eneblar spara knappen
        private void btnAnstalldRensa_Click(object sender, EventArgs e)
        {
            AnstalldtxtBoxAgenturNr.Enabled = true;
            AnstalldtxtBoxFornamn.Text = "";
            AnstalldtxtBoxEfternamn.Text = "";
            AnstalldtxtBoxPersonNr.Text = "";
            AnstalldtxtBoxAdress.Text = "";
            AnstalldtxtBoxPostNr.Text = "";
            AnstalldtxtBoxOrt.Text = "";
            AnstalldtxtBoxEpost.Text = "";
            AnstalldtxtBoxTeleNr.Text = "";
            AnstalldComboBoxValjAnstalldTelTyp.SelectedIndex = 0;
            AnstalldtxtBoxAgenturNr.Text = "";
            AnstalldtxtBoxSkattesats.Text = "";
            AnstalldtxtBoxBefattning.Text = "";
            AnstalldtxtBoxLosenord.Text = "";
            AnstalldListView.Items.Clear();
            AnstalldBtnSpara.Enabled = true;

            textBoxNotifier.Text = "Alla fält är rensade";
        }
        //Fyller i textboxarna av vald anställd och disablar spara knappen
        private void AnstalldListView_SelectedIndexChanged(object sender, EventArgs e)
        {
            AnstalldtxtBoxAgenturNr.Enabled = false;
            if (AnstalldListView.SelectedItems.Count > 0)
            {
                int behorigheten;
                AnstalldBtnSpara.Enabled = false;
                AnstalldtxtBoxFornamn.Text = AnstalldListView.SelectedItems[0].Text;
                AnstalldtxtBoxEfternamn.Text = AnstalldListView.SelectedItems[0].SubItems[1].Text;
                AnstalldtxtBoxAgenturNr.Text = AnstalldListView.SelectedItems[0].SubItems[2].Text;
                AnstalldtxtBoxPersonNr.Text = AnstalldListView.SelectedItems[0].SubItems[3].Text;
                AnstalldtxtBoxAdress.Text = AnstalldListView.SelectedItems[0].SubItems[4].Text;
                AnstalldtxtBoxPostNr.Text = AnstalldListView.SelectedItems[0].SubItems[5].Text;
                AnstalldtxtBoxOrt.Text = AnstalldListView.SelectedItems[0].SubItems[6].Text;
                AnstalldtxtBoxTeleNr.Text = AnstalldListView.SelectedItems[0].SubItems[7].Text;
                AnstalldComboBoxValjAnstalldTelTyp.Text = AnstalldListView.SelectedItems[0].SubItems[8].Text;
                AnstalldtxtBoxEpost.Text = AnstalldListView.SelectedItems[0].SubItems[9].Text;
                AnstalldtxtBoxSkattesats.Text = AnstalldListView.SelectedItems[0].SubItems[10].Text;
                AnstalldtxtBoxBefattning.Text = AnstalldListView.SelectedItems[0].SubItems[11].Text;
                behorigheten = int.Parse(AnstalldListView.SelectedItems[0].SubItems[12].Text);
                AnstalldtxtBoxLosenord.Text = logikhantering.hamtaHamtalösen(long.Parse(AnstalldtxtBoxPersonNr.Text));

                if (behorigheten == 1)
                {
                    radioButtonVD.Checked = true;


                }
                if (behorigheten == 2)
                {

                    radioButtonFChef.Checked = true;


                }
                if (behorigheten == 3)
                {

                    radioEkonomiassistent.Checked = true;

                }
                if (behorigheten == 4)
                {
                    radioButtonFörsäljningsassistent.Checked = true;
                }
                if (behorigheten == 5)
                {

                    radioButtonSäljare.Checked = true;

                }
                if (behorigheten == 6)
                {

                    radioButtonAdmin.Checked = true;

                }
            }
            else
            {
                AnstalldBtnSpara.Enabled = true;

            }
        }
        //Spara behörigheten på en anställd
        private void AnstalldbtnBehorighetSpara_Click(object sender, EventArgs e)
        {
            int bID;
            if (radioButtonVD.Checked)
            {
                bID = 1;
                logikhantering.sparaBehorighet(valtAgenturnummer, bID);
            }
            else if (radioButtonFChef.Checked)
            {
                bID = 2;
                logikhantering.sparaBehorighet(valtAgenturnummer, bID);
            }
            else if (radioEkonomiassistent.Checked)
            {
                bID = 3;
                logikhantering.sparaBehorighet(valtAgenturnummer, bID); ;
            }
            else if (radioButtonFörsäljningsassistent.Checked)
            {
                bID = 4;
                logikhantering.sparaBehorighet(valtAgenturnummer, bID);
            }
            else if (radioButtonSäljare.Checked)
            {
                bID = 5;
                logikhantering.sparaBehorighet(valtAgenturnummer, bID);
            }
            else
            {
                textBoxNotifier.Text = "Något blev fel, Sparades inte!";
            }
        }
        //Anställda sök funktion
        private void AnstalldtxtBoxSok_TextChanged(object sender, EventArgs e)
        {
            AnstalldListView.Items.Clear();


            logikhantering.sokAnstalld(AnstalldtxtBoxSok.Text);
            foreach (Anstallda ans in logikhantering.ListaMedHittadAnstalld)
            {
                ListViewItem item = new ListViewItem(new string[] { ans.ForNamn, ans.EfterNamn, ans.AgenturNummer.ToString(), ans.PersonNummer.ToString(), ans.Adress, ans.PostNummer.ToString(), ans.Ort, ans.TeleNummer.ToString(), ans.TeleTyp, ans.Epost, ans.SkatteSats.ToString(), ans.Befattning, ans.Losenord });
                item.Tag = ans;
                this.AnstalldListView.Items.Add(item);
            }
            if (String.IsNullOrEmpty(AnstalldtxtBoxSok.Text))
            {
                AnstalldBtnVisaAlla_Click(sender, e);
            }
        }
        //Visar information om behörighet
        private void pictureBox1_Click(object sender, EventArgs e)
        {
            MessageBox.Show(" För mer information om behörigheter,\n håll muspekaren över alternativ");
        }
        //Listar upp anställd metoden
        public void listaUppAnstalld()
        {
            try
            {
                AnstalldListView.Items.Clear();

                List<Anstalld> ListaAnstallda = logikhantering.HamtaAllaAnstallda();
                for (int i = 0; i < ListaAnstallda.Count; i++)
                {
                    string[] objekt = new string[13];
                    objekt[0] = ListaAnstallda[i].fNamn;
                    objekt[1] = ListaAnstallda[i].eNamn;
                    objekt[2] = ListaAnstallda[i].agenturNr.ToString();
                    objekt[3] = ListaAnstallda[i].personNr.ToString();
                    objekt[4] = ListaAnstallda[i].gatuadress;
                    objekt[5] = ListaAnstallda[i].postNr.ToString();
                    objekt[6] = ListaAnstallda[i].AnstalldPostNr.ort;
                    objekt[7] = ListaAnstallda[i].AnstalldTelefon.teleNr.ToString();
                    objekt[8] = ListaAnstallda[i].AnstalldTelefon.typ;
                    objekt[9] = ListaAnstallda[i].epost;
                    objekt[10] = ListaAnstallda[i].skattesats.ToString();
                    objekt[11] = ListaAnstallda[i].befattning;
                    objekt[12] = ListaAnstallda[i].behorighetsID.ToString();

                    ListViewItem listobjekt = new ListViewItem(objekt);

                    //Lägger till anstallda till taggen så vi kan använda informationen.
                    listobjekt.Tag = ListaAnstallda[i];

                    AnstalldListView.Items.Add(listobjekt);
                    textBoxNotifier.Text = "Du har klickat på visa alla anställda. Kolla i ListViewn";
                }
            }
            catch (SystemException excep)
            {
                MessageBox.Show(excep.Message);
                textBoxNotifier.Text = "Något hände, antingen finns inga registrerade anställda, testa försök igen eller kontakta administratör";
                return;
            }
        }
        //Om den är checkad så sätter vi behörighet till 1
        private void radioButtonVD_CheckedChanged(object sender, EventArgs e)
        {
            behorighet = 1;
        }
        //Om den är checkad så sätter vi behörighet till 2
        private void radioButtonFChef_CheckedChanged(object sender, EventArgs e)
        {
            behorighet = 2;
        }
        //Om den är checkad så sätter vi behörighet till 3
        private void radioEkonomiassistent_CheckedChanged(object sender, EventArgs e)
        {
            behorighet = 3;
        }
        //Om den är checkad så sätter vi behörighet till 4
        private void radioButtonFörsäljningsassistent_CheckedChanged(object sender, EventArgs e)
        {
            behorighet = 4;
        }
        //Om den är checkad så sätter vi behörighet till 5
        private void radioButtonSäljare_CheckedChanged(object sender, EventArgs e)
        {
            behorighet = 5;
        }
        //Om den är checkad så sätter vi behörighet till 6
        private void radioButtonAdmin_CheckedChanged(object sender, EventArgs e)
        {
            behorighet = 6;
        }
        //Visar information om behörighet
        private void pictureBox1_Click_1(object sender, EventArgs e)
        {
            MessageBox.Show(" För mer information om behörigheter håll musen över behörighetstitel. ");
        }
        //Räknar ut provision emellan valda datum
        private void AnstalldBtnRaknaProvision_Click(object sender, EventArgs e)
        {
            int beh = int.Parse(label70.Text);
            //try
            //{


            if (beh == 3)
            {
                if (string.IsNullOrWhiteSpace(AnstalldtxtBoxAgenturNr.Text) || string.IsNullOrEmpty(AnstalldtxtBoxAgenturNr.Text) || (AnstalldtxtBoxAgenturNr.Text.Length == 4) == false)
                {
                    MessageBox.Show("Vänligen fyll i ett giltligt agenturnummer ex. 1234 (4 siffror långt)");
                    return;
                }

                if (!String.IsNullOrEmpty(AnstalldtxtBoxAgenturNr.Text) == true)
                {
                    string[] omvandla = new string[] { AnstalldtxtBoxAgenturNr.Text };
                    bool omvandlingLyckades = logikhantering.IntParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Vänligen skriv med siffror";
                        return;
                    }
                    else
                    {
                        logikhantering.raknaUtProvision(int.Parse(AnstalldtxtBoxAgenturNr.Text), DateTime.Parse(dTPFran.Text), DateTime.Parse(dTPTill.Text));
                    }
                }
            }
            else
            {
                logikhantering.raknaUtProvision(int.Parse(label104.Text), DateTime.Parse(dTPFran.Text), DateTime.Parse(dTPTill.Text));
            }
            //}
            //catch { }
            SkrivUtProvisionsMall();
            logikhantering.sumBarn = 0;
            logikhantering.sumVuxen = 0;
            logikhantering.summaackvarden = 0;
            logikhantering.provisionSO = 0;
            logikhantering.sumSjukOchOlycka = 0;
            logikhantering.sumSjukskrivning = 0;
            logikhantering.sumLiv = 0;
            logikhantering.sumLivVuxen = 0;
            logikhantering.provisionLiv = 0;
            logikhantering.provionOvrig = 0;
            logikhantering.semesterersattning = 0;
            logikhantering.semesterprocent = "";
            logikhantering.summaprov = 0;
            logikhantering.skatt = 0;
            logikhantering.anstalldskattesats = 0;
            logikhantering.attUtbetala = 0;
        }

        #endregion

        #region Försäkring
        
        #region PersonF

        //Rensar alla textboxar i Personförsäkring
        private void FPBtnRensa_Click(object sender, EventArgs e)
        {
            rensaPf();
            FPcomboBoxAgenturNr.Enabled = true;
            FPBtnSpara.Enabled = true;
        }
        //Hämtar grundbelopp för rätt typ av försäkring
        private void FPcomboBoxForsakringstyp_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (FPcomboBoxForsakringstyp.Text == "")
            {
                FPcomboBoxGrundbelopp.Items.Clear();
            }
            if (FPcomboBoxForsakringstyp.Text == "Sjuk- och olycksfallförsäkring för barn")
            {
                FPcomboBoxGrundbelopp.Items.Clear();
                List<ForsakringsUtbud> Grundbelopp = logikhantering.HamtaGrundbeloppTillBarnF();
                for (int i = 0; i < Grundbelopp.Count; i++)
                {
                    string[] objekt = new string[1];
                    objekt[0] = Grundbelopp[i].grundbelopp.ToString();
                    ListItem t = new ListItem(objekt[0], Grundbelopp[i]);
                    FPcomboBoxGrundbelopp.Items.Add(t);
                }
            }
            if (FPcomboBoxForsakringstyp.Text == "Sjuk- och olycksfallsförsäkring för vuxen")
            {
                FPcomboBoxGrundbelopp.Items.Clear();
                List<ForsakringsUtbud> Grundbelopp = logikhantering.HamtaGrundbeloppTillVuxenF();
                for (int i = 0; i < Grundbelopp.Count; i++)
                {
                    string[] objekt = new string[1];
                    objekt[0] = Grundbelopp[i].grundbelopp.ToString();
                    ListItem t = new ListItem(objekt[0], Grundbelopp[i]);
                    FPcomboBoxGrundbelopp.Items.Add(t);
                }
            }

            if (FPcomboBoxForsakringstyp.Text == "Livförsäkring vuxen")
            {
                FPcomboBoxGrundbelopp.Items.Clear();
                List<ForsakringsUtbud> Grundbelopp = logikhantering.HamtaGrundbeloppTillLivsF();
                for (int i = 0; i < Grundbelopp.Count; i++)
                {
                    string[] objekt = new string[1];
                    objekt[0] = Grundbelopp[i].grundbelopp.ToString();
                    ListItem t = new ListItem(objekt[0], Grundbelopp[i]);
                    FPcomboBoxGrundbelopp.Items.Add(t);
                }
            }
        }
        //Sätter sjukoch olycksfall checkboxen till ja
        private void FPcheckBoxSjukOlycksfall_CheckedChanged(object sender, EventArgs e)
        {
            sjukOolycksfall = "Yes";
        }
        //Sätter livsförsäkring checkboxen till ja
        private void FPcheckBoxLivsForsakring_CheckedChanged(object sender, EventArgs e)
        {
            hojningLiv = "Yes";
        }
        //Sätter sjukoch olycksfall checkboxen till ja
        private void FPcheckBoxSjukSkrivning_CheckedChanged(object sender, EventArgs e)
        {
            sjukskrivning = "Yes";
        }
        //Personförsäkringar hämtar metod för att lista upp dem
        private void FPBtnVisaAlla_Click(object sender, EventArgs e)
        {
            listaUppPersonforsakring();
        }
        //Rensar skrivfälten i personförsäkring
        public void rensaPf()
        {
            try
            {
                FPcheckBoxLivsForsakring.Checked = false;
                FPcheckBoxSjukOlycksfall.Checked = false;
                FPcheckBoxSjukSkrivning.Checked = false;
                FPcomboBoxBetalningsForm.SelectedIndex = 0;
                FPcomboBoxGrundbelopp.SelectedIndex = 0;
                FPcomboBoxSjukOlyckGrundbelopp.SelectedIndex = 0;
                FPcomboBoxSjukskrivGrundbelopp.SelectedIndex = 0;
                FPListView.Items.Clear();
                FPcomboBoxForsakringstyp.SelectedIndex = 0;
                FPcomboBoxAgenturNr.SelectedIndex = 0;
                FPDateTimeAnkomstdatum.Text = "";
                FPtxtBoxForsakradEfternamn.Text = "";
                FPtxtBoxForsakradFornam.Text = "";
                FPtxtBoxForsakradPersonNr.Text = "";
                FPtxtBoxFTAdress.Text = "";
                FPtxtBoxFTEfternamn.Text = "";
                FPtxtBoxFTEmail.Text = "";
                FPtxtBoxFTFornamn.Text = "";
                FPtxtBoxFTOrt.Text = "";
                FPtxtBoxFTPersonNr.Text = "";
                FPtxtBoxFTPostNr.Text = "";
                FPtxtBoxFTTelArbete.Text = "";
                FPtxtBoxFTTelHem.Text = "";
                FPtxtBoxLivsGrundbelopp.Text = "";
                FPtxtBoxSok.Text = "";

                textBoxNotifier.Text = "Alla fält är rensade";
            }
            catch
            { }
        }
        //Fyller i textboxarna av vald personförsäkring och disablar spara knappen
        private void FPListView_SelectedIndexChanged(object sender, EventArgs e)
        {
            FPcomboBoxAgenturNr.Enabled = false;
            try
            {
                if (FPListView.SelectedItems.Count > 0)
                {
                    FPBtnSpara.Enabled = false;
                    FPcomboBoxAgenturNr.Text = FPListView.SelectedItems[0].SubItems[0].Text;
                    FPtxtBoxFTEfternamn.Text = FPListView.SelectedItems[0].SubItems[1].Text;
                    FPtxtBoxFTFornamn.Text = FPListView.SelectedItems[0].SubItems[2].Text;
                    FPtxtBoxFTPersonNr.Text = FPListView.SelectedItems[0].SubItems[3].Text;
                    FPtxtBoxFTAdress.Text = FPListView.SelectedItems[0].SubItems[4].Text;
                    FPtxtBoxFTPostNr.Text = FPListView.SelectedItems[0].SubItems[5].Text;
                    FPtxtBoxFTOrt.Text = FPListView.SelectedItems[0].SubItems[6].Text;
                    FPtxtBoxFTTelHem.Text = FPListView.SelectedItems[0].SubItems[7].Text;
                    FPtxtBoxFTTelArbete.Text = FPListView.SelectedItems[0].SubItems[8].Text;
                    FPtxtBoxFTEmail.Text = FPListView.SelectedItems[0].SubItems[9].Text;
                    FPtxtBoxForsakradEfternamn.Text = FPListView.SelectedItems[0].SubItems[10].Text;
                    FPtxtBoxForsakradFornam.Text = FPListView.SelectedItems[0].SubItems[11].Text;
                    FPtxtBoxForsakradPersonNr.Text = FPListView.SelectedItems[0].SubItems[12].Text;
                    FPDateTimeAnkomstdatum.Text = FPListView.SelectedItems[0].SubItems[13].Text;
                    FPcomboBoxForsakringstyp.Text = FPListView.SelectedItems[0].SubItems[14].Text;
                    FPcomboBoxBetalningsForm.Text = FPListView.SelectedItems[0].SubItems[15].Text;
                    ftagareID = int.Parse(FPListView.SelectedItems[0].SubItems[16].Text);
                }
            }
            catch { }
        }
        //Sök i textbox i personfliken
        private void FPtxtBoxSok_TextChanged(object sender, EventArgs e)
        {
            FPListView.Items.Clear();
            logikhantering.SokPersonForsakring(FPtxtBoxSok.Text);

            foreach (Forsakring f in logikhantering.lista)
            {
                ListViewItem item = new ListViewItem(new string[] { f.agenturNr.ToString(), f.Forsakringstagare.eNamn, f.Forsakringstagare.fNamn,
                                                                    f.Forsakringstagare.personNr.ToString(), f.Forsakringstagare.gatuadress, f.Forsakringstagare.postNr.ToString(), 
                                                                    f.Forsakringstagare.ort, f.Forsakringstagare.teleNrHem.ToString(), f.Forsakringstagare.teleNrArbete.ToString(),
                                                                    f.Forsakringstagare.epost, f.eNamn, f.fNamn, f.personNr.ToString(), f.ankomstDatum.ToString(), f.fTyp, f.betalningsPeriod});
                item.Tag = f;
                this.FPListView.Items.Add(item);
            }

            if (String.IsNullOrEmpty(FPtxtBoxSok.Text))
            {
                listaUppPersonforsakring();
            }
        }

        //Uppdatera personförsäkring
        private void FPBtnUppdatera_Click(object sender, EventArgs e)
        {
            if (FPListView.SelectedItems.Count == 1)
            {
                if (String.IsNullOrEmpty(FPcomboBoxAgenturNr.Text) == true || FPcomboBoxAgenturNr.Text == "" || FPcomboBoxAgenturNr.Text == "-Välj-")
                {
                    MessageBox.Show("Kontrollera att det finns ett agenturnummer");
                    return;
                }

                if (!String.IsNullOrEmpty(FPtxtBoxFTPersonNr.Text) == true || FPtxtBoxFTPersonNr.Text != "")
                {
                    string[] omvandla = new string[] { FPtxtBoxFTPersonNr.Text };
                    bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera försäkringstagarens persNr, skriv 10 siffror och utan mellanslag";
                        return;
                    }
                }
                else { FPtxtBoxFTPersonNr.Text = "0"; }

                if (!String.IsNullOrEmpty(FPtxtBoxFTPostNr.Text) == true || FPtxtBoxFTPostNr.Text != "")
                {
                    string[] omvandla = new string[] { FPtxtBoxFTPostNr.Text };
                    bool omvandlingLyckades = logikhantering.IntParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera Postnummret, ex: 12345 utan mellanslag";
                        return;
                    }
                }
                else { FPtxtBoxFTPostNr.Text = "0"; }

                if (!String.IsNullOrEmpty(FPtxtBoxFTTelHem.Text) == true || FPtxtBoxFTTelHem.Text != "")
                {
                    string[] omvandla = new string[] { FPtxtBoxFTTelHem.Text };
                    bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera Telefonhem, skriv med siffror och utan mellanslag";
                        return;
                    }
                }
                else { FPtxtBoxFTTelHem.Text = "0"; }

                if (!String.IsNullOrEmpty(FPtxtBoxFTTelArbete.Text) == true || FPtxtBoxFTTelArbete.Text != "")
                {
                    string[] omvandla = new string[] { FPtxtBoxFTTelArbete.Text };
                    bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera Telefonarbete, skriv med siffror och utan mellanslag";
                        return;
                    }
                }
                else { FPtxtBoxFTTelArbete.Text = "0"; }

                if (!String.IsNullOrEmpty(FPtxtBoxForsakradPersonNr.Text) == true || FPtxtBoxForsakradPersonNr.Text != "")
                {
                    string[] omvandla = new string[] { FPtxtBoxForsakradPersonNr.Text };
                    bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera den försäkrades Personnummer, skriv 10 siffror och utan mellanslag";
                        return;
                    }
                }
                else { FPtxtBoxForsakradPersonNr.Text = "0"; }

                if (!String.IsNullOrEmpty(FPcomboBoxGrundbelopp.Text) == true || FPcomboBoxGrundbelopp.Text != "")
                {
                    string[] omvandla = new string[] { FPcomboBoxGrundbelopp.Text };
                    bool omvandlingLyckades = logikhantering.DecimalParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera försäkringstypens grundbelopp";
                        return;
                    }
                    Grundbelopp = Decimal.Parse(FPcomboBoxGrundbelopp.Text);
                }
                else { Grundbelopp = 0; }

                if (!String.IsNullOrEmpty(FPcomboBoxSjukOlyckGrundbelopp.Text) == true || FPcomboBoxSjukOlyckGrundbelopp.Text != "")
                {
                    string[] omvandla = new string[] { FPcomboBoxSjukOlyckGrundbelopp.Text };
                    bool omvandlingLyckades = logikhantering.DecimalParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera Tillval: sjuk och olycksfalls grundbelopp, skriv med siffror och utan mellanslag";
                        return;
                    }
                    SjukOlyckGrundbelopp = Decimal.Parse(FPcomboBoxSjukOlyckGrundbelopp.Text);
                }
                else { SjukOlyckGrundbelopp = 0; }

                if (!String.IsNullOrEmpty(FPtxtBoxLivsGrundbelopp.Text) == true || FPtxtBoxLivsGrundbelopp.Text != "")
                {
                    string[] omvandla = new string[] { FPtxtBoxLivsGrundbelopp.Text };
                    bool omvandlingLyckades = logikhantering.DecimalParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera Tillval: livförsäkring, skriv med siffror och utan mellanslag";
                        return;
                    }
                    LivsGrundbelopp = Decimal.Parse(FPtxtBoxLivsGrundbelopp.Text);
                }
                else { LivsGrundbelopp = 0; }

                if (!String.IsNullOrEmpty(FPcomboBoxSjukskrivGrundbelopp.Text) == true && FPcomboBoxSjukskrivGrundbelopp.Text != "")
                {
                    string[] omvandla = new string[] { FPcomboBoxSjukskrivGrundbelopp.Text };
                    bool omvandlingLyckades = logikhantering.DecimalParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera Tillval: sjukskrivningens grundbelopp, skriv med siffror och utan mellanslag ";
                        return;
                    }
                    SjukskrivGrundbelopp = Decimal.Parse(FPcomboBoxSjukskrivGrundbelopp.Text);
                }
                else if (FPcomboBoxSjukskrivGrundbelopp.Text == "") { SjukskrivGrundbelopp = 0; }


                if (String.IsNullOrEmpty(FPtxtBoxFTEfternamn.Text) == true) { FPtxtBoxFTEfternamn.Text = " "; }
                if (String.IsNullOrEmpty(FPtxtBoxFTFornamn.Text) == true) { FPtxtBoxFTFornamn.Text = " "; }
                if (String.IsNullOrEmpty(FPtxtBoxFTAdress.Text) == true) { FPtxtBoxFTAdress.Text = " "; }
                if (String.IsNullOrEmpty(FPtxtBoxFTOrt.Text) == true) { FPtxtBoxFTOrt.Text = " "; }
                if (String.IsNullOrEmpty(FPtxtBoxFTEmail.Text) == true) { FPtxtBoxFTEmail.Text = " "; }
                if (String.IsNullOrEmpty(FPtxtBoxForsakradEfternamn.Text) == true) { FPtxtBoxForsakradEfternamn.Text = " "; }
                if (String.IsNullOrEmpty(FPtxtBoxForsakradFornam.Text) == true) { FPtxtBoxForsakradFornam.Text = " "; }
                if (String.IsNullOrEmpty(FPcomboBoxForsakringstyp.Text) == true) { FPcomboBoxForsakringstyp.Text = " "; }
                if (String.IsNullOrEmpty(FPcomboBoxBetalningsForm.Text) == true) { FPcomboBoxBetalningsForm.Text = " "; }


                logikhantering.uppdateraPersonForsakrin(FPtxtBoxFTEfternamn.Text, FPtxtBoxFTFornamn.Text, long.Parse(FPtxtBoxFTPersonNr.Text),
                    FPtxtBoxFTAdress.Text, int.Parse(FPtxtBoxFTPostNr.Text), FPtxtBoxFTOrt.Text,
                    long.Parse(FPtxtBoxFTTelHem.Text), long.Parse(FPtxtBoxFTTelArbete.Text), FPtxtBoxFTEmail.Text, FPtxtBoxForsakradEfternamn.Text,
                    FPtxtBoxForsakradFornam.Text, long.Parse(FPtxtBoxForsakradPersonNr.Text), DateTime.Parse(FPDateTimeAnkomstdatum.Text), FPcomboBoxForsakringstyp.Text,
                    sjukOolycksfall, hojningLiv, LivsGrundbelopp, sjukskrivning,
                    FPcomboBoxBetalningsForm.Text, Grundbelopp, int.Parse(FPcomboBoxAgenturNr.Text),
                    SjukskrivGrundbelopp, SjukOlyckGrundbelopp, ftagareID);
                rensaPf();
                listaUppPersonforsakring();
                textBoxNotifier.Text = "Listan är uppdaterad";
                FPcomboBoxAgenturNr.Enabled = true;
                FPBtnSpara.Enabled = true;
            }
            else
            {
                textBoxNotifier.Text = "Välj en person i listviewn för att uppdatera";
            }
        }
        //Skriver ut vald(a) anställd(a)
        private void FPBtnSkrivUt_Click(object sender, EventArgs e)
        {
            Microsoft.Office.Interop.Excel.Application xla = new Microsoft.Office.Interop.Excel.Application();
            xla.Visible = true;
            Microsoft.Office.Interop.Excel.Workbook wb = xla.Workbooks.Add(Microsoft.Office.Interop.Excel.XlSheetType.xlWorksheet);
            Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)xla.ActiveSheet;
            Excel.Range chartRange;

            ws.Cells[1, 1] = "Försäkringstagare";
            ws.Cells[1, 11] = "Försäkrad";
            ws.Cells[2, 1] = "AgenturNr";
            ws.Cells[2, 2] = "Efternamn";
            ws.Cells[2, 3] = "Förnamn";
            ws.Cells[2, 4] = "PersonNr";
            ws.Cells[2, 5] = "Adress";
            ws.Cells[2, 6] = "PostNr";
            ws.Cells[2, 7] = "Ort";
            ws.Cells[2, 8] = "Hem Nr";
            ws.Cells[2, 9] = "TeleNr arbete";
            ws.Cells[2, 10] = "Epost";
            ws.Cells[2, 11] = "Efternamn";
            ws.Cells[2, 12] = "Förnamn";
            ws.Cells[2, 13] = "PersonNr";
            ws.Cells[2, 14] = "Ankomstdatum";
            ws.Cells[2, 15] = "Försäkringstyp";
            ws.Cells[2, 16] = "Betalningsform";
            ws.Cells[2, 17] = "FörsäkringsID";


            chartRange = ws.get_Range("a1", "a1");
            chartRange.Font.Bold = true;
            chartRange = ws.get_Range("k1", "k1");
            chartRange.Font.Bold = true;


            int i = 2, j = 3;

            foreach (ListViewItem lvi in FPListView.SelectedItems)
            {
                i = 1;
                foreach (ListViewItem.ListViewSubItem lvsub in lvi.SubItems)
                {
                    ws.Cells[j, i] = lvsub.Text;
                    i++;
                }
                j++;
                FPListView.Items.Clear();
            }
            listaUppPersonforsakring();
        }
        //Radera Personförsäkring
        private void FPBtnRadera_Click(object sender, EventArgs e)
        {
            try
            {
                if (FPListView.SelectedItems.Count != 1)
                {
                    textBoxNotifier.Text = "Var god och välj en försäkring för att ta bort";
                    return;
                }
                if (FPListView.SelectedItems.Count == 1)
                {
                    logikhantering.taBortPersonForsakring(ftagareID);                    
                    rensaPf();
                    listaUppPersonforsakring();
                    textBoxNotifier.Text = "Försäkringen är nu raderad";
                    FPcomboBoxAgenturNr.Enabled = true;
                    FPBtnSpara.Enabled = true;
                }
                else
                {
                    textBoxNotifier.Text = "Var vänligen att välja endast EN försäkring för att ta bort";
                }
            }
            catch { }
        }
        //Sparar en PersonFörsäkring
        private void FPBtnSpara_Click(object sender, EventArgs e)
        {

            if (String.IsNullOrEmpty(FPcomboBoxAgenturNr.Text) == true || FPcomboBoxAgenturNr.Text == "" || FPcomboBoxAgenturNr.Text == "-Välj-")
            {
                MessageBox.Show("Kontrollera att det finns ett agenturnummer");
                return;
            }

            if (!String.IsNullOrEmpty(FPtxtBoxFTPersonNr.Text) == true || FPtxtBoxFTPersonNr.Text != "")
            {
                string[] omvandla = new string[] { FPtxtBoxFTPersonNr.Text };
                bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera försäkringstagarens persNr, skriv 10 siffror och utan mellanslag";
                    return;
                }
            }
            else { FPtxtBoxFTPersonNr.Text = "0"; }

            if (!String.IsNullOrEmpty(FPtxtBoxFTPostNr.Text) == true || FPtxtBoxFTPostNr.Text != "")
            {
                string[] omvandla = new string[] { FPtxtBoxFTPostNr.Text };
                bool omvandlingLyckades = logikhantering.IntParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera Postnummret, ex: 12345 utan mellanslag";
                    return;
                }
            }
            else { FPtxtBoxFTPostNr.Text = "0"; }

            if (!String.IsNullOrEmpty(FPtxtBoxFTTelHem.Text) == true || FPtxtBoxFTTelHem.Text != "")
            {
                string[] omvandla = new string[] { FPtxtBoxFTTelHem.Text };
                bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera Telefonhem, skriv med siffror och utan mellanslag";
                    return;
                }
            }
            else { FPtxtBoxFTTelHem.Text = "0"; }

            if (!String.IsNullOrEmpty(FPtxtBoxFTTelArbete.Text) == true || FPtxtBoxFTTelArbete.Text != "")
            {
                string[] omvandla = new string[] { FPtxtBoxFTTelArbete.Text };
                bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera Telefonarbete, skriv med siffror och utan mellanslag";
                    return;
                }
            }
            else { FPtxtBoxFTTelArbete.Text = "0"; }

            if (!String.IsNullOrEmpty(FPtxtBoxForsakradPersonNr.Text) == true || FPtxtBoxForsakradPersonNr.Text != "")
            {
                string[] omvandla = new string[] { FPtxtBoxForsakradPersonNr.Text };
                bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera den försäkrades Personnummer, skriv 10 siffror och utan mellanslag";
                    return;
                }
            }
            else { FPtxtBoxForsakradPersonNr.Text = "0"; }

            if (!String.IsNullOrEmpty(FPcomboBoxGrundbelopp.Text) == true || FPcomboBoxGrundbelopp.Text != "")
            {
                string[] omvandla = new string[] { FPcomboBoxGrundbelopp.Text };
                bool omvandlingLyckades = logikhantering.DecimalParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera försäkringstypens grundbelopp";
                    return;
                }
                Grundbelopp = decimal.Parse(FPcomboBoxGrundbelopp.Text);
            }
            else { Grundbelopp = 0; }

            if (!String.IsNullOrEmpty(FPcomboBoxSjukOlyckGrundbelopp.Text) == true || FPcomboBoxSjukOlyckGrundbelopp.Text != "")
            {
                string[] omvandla = new string[] { FPcomboBoxSjukOlyckGrundbelopp.Text };
                bool omvandlingLyckades = logikhantering.DecimalParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera Tillval: sjuk och olycksfalls grundbelopp, skriv med siffror och utan mellanslag";
                    return;
                }
                SjukOlyckGrundbelopp = decimal.Parse(FPcomboBoxSjukOlyckGrundbelopp.Text);
            }
            else { SjukOlyckGrundbelopp = 0; }

            if (!String.IsNullOrEmpty(FPtxtBoxLivsGrundbelopp.Text) == true || FPtxtBoxLivsGrundbelopp.Text != "")
            {
                string[] omvandla = new string[] { FPtxtBoxLivsGrundbelopp.Text };
                bool omvandlingLyckades = logikhantering.DecimalParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera Tillval: livförsäkring, skriv med siffror och utan mellanslag";
                    return;
                }
                LivsGrundbelopp = decimal.Parse(FPtxtBoxLivsGrundbelopp.Text);
            }
            else { LivsGrundbelopp = 0; }

            if (!String.IsNullOrEmpty(FPcomboBoxSjukskrivGrundbelopp.Text) == true && FPcomboBoxSjukskrivGrundbelopp.Text != "")
            {
                string[] omvandla = new string[] { FPcomboBoxSjukskrivGrundbelopp.Text };
                bool omvandlingLyckades = logikhantering.DecimalParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera Tillval: sjukskrivningens grundbelopp, skriv med siffror och utan mellanslag ";
                    return;
                }
                SjukskrivGrundbelopp = decimal.Parse(FPcomboBoxSjukskrivGrundbelopp.Text);
            }
            else if (FPcomboBoxSjukskrivGrundbelopp.Text == "") { SjukskrivGrundbelopp = 0; }


            if (String.IsNullOrEmpty(FPcomboBoxSjukskrivGrundbelopp.Text) == true) { FPcomboBoxSjukskrivGrundbelopp.Text = "0"; }
            if (String.IsNullOrEmpty(FPtxtBoxFTEfternamn.Text) == true) { FPtxtBoxFTEfternamn.Text = " "; }
            if (String.IsNullOrEmpty(FPtxtBoxFTFornamn.Text) == true) { FPtxtBoxFTFornamn.Text = " "; }
            if (String.IsNullOrEmpty(FPtxtBoxFTAdress.Text) == true) { FPtxtBoxFTAdress.Text = " "; }
            if (String.IsNullOrEmpty(FPtxtBoxFTOrt.Text) == true) { FPtxtBoxFTOrt.Text = " "; }
            if (String.IsNullOrEmpty(FPtxtBoxFTEmail.Text) == true) { FPtxtBoxFTEmail.Text = " "; }
            if (String.IsNullOrEmpty(FPtxtBoxForsakradEfternamn.Text) == true) { FPtxtBoxForsakradEfternamn.Text = " "; }
            if (String.IsNullOrEmpty(FPtxtBoxForsakradFornam.Text) == true) { FPtxtBoxForsakradFornam.Text = " "; }
            if (String.IsNullOrEmpty(FPcomboBoxForsakringstyp.Text) == true) { FPcomboBoxForsakringstyp.Text = " "; }
            if (String.IsNullOrEmpty(FPcomboBoxBetalningsForm.Text) == true) { FPcomboBoxBetalningsForm.Text = " "; }

            if (0 == 0)
            {
                logikhantering.laggaTillPersonforsakring(FPtxtBoxFTEfternamn.Text, FPtxtBoxFTFornamn.Text, long.Parse(FPtxtBoxFTPersonNr.Text),
                    FPtxtBoxFTAdress.Text, int.Parse(FPtxtBoxFTPostNr.Text), FPtxtBoxFTOrt.Text, long.Parse(FPtxtBoxFTTelHem.Text),
                    long.Parse(FPtxtBoxFTTelArbete.Text), FPtxtBoxFTEmail.Text, FPtxtBoxForsakradEfternamn.Text, FPtxtBoxForsakradFornam.Text,
                    long.Parse(FPtxtBoxForsakradPersonNr.Text), DateTime.Parse(FPDateTimeAnkomstdatum.Text), FPcomboBoxForsakringstyp.Text,
                    sjukOolycksfall, hojningLiv, LivsGrundbelopp, sjukskrivning, FPcomboBoxBetalningsForm.Text, Grundbelopp,
                    int.Parse(FPcomboBoxAgenturNr.Text), SjukskrivGrundbelopp, SjukOlyckGrundbelopp, "Person");

                rensaPf();
                listaUppPersonforsakring();
                textBoxNotifier.Text = "Sparningen lyckades, en personförsäkring är nu registrerad";
            }
        }
        //Hämtar alla personförsäkringar
        public void listaUppPersonforsakring()
        {
            FPListView.Items.Clear();

            List<Forsakring> ListaPerson = logikhantering.HamtaAllaPersonForsakring();
            try
            {
                for (int i = 0; i < ListaPerson.Count; i++)
                {
                    string[] objekt = new string[17];
                    objekt[0] = ListaPerson[i].agenturNr.ToString();
                    objekt[1] = ListaPerson[i].Forsakringstagare.eNamn;
                    objekt[2] = ListaPerson[i].Forsakringstagare.fNamn;
                    objekt[3] = ListaPerson[i].Forsakringstagare.personNr.ToString();
                    objekt[4] = ListaPerson[i].Forsakringstagare.gatuadress;
                    objekt[5] = ListaPerson[i].Forsakringstagare.postNr.ToString();
                    objekt[6] = ListaPerson[i].Forsakringstagare.ort;
                    objekt[7] = ListaPerson[i].Forsakringstagare.teleNrHem.ToString();
                    objekt[8] = ListaPerson[i].Forsakringstagare.teleNrArbete.ToString();
                    objekt[9] = ListaPerson[i].Forsakringstagare.epost;
                    objekt[10] = ListaPerson[i].eNamn;
                    objekt[11] = ListaPerson[i].fNamn; ;
                    objekt[12] = ListaPerson[i].personNr.ToString();
                    objekt[13] = ListaPerson[i].ankomstDatum.ToString();
                    objekt[14] = ListaPerson[i].fTyp;
                    objekt[15] = ListaPerson[i].betalningsPeriod;
                    objekt[16] = ListaPerson[i].fTagareID.ToString();

                    ListViewItem listobjekt = new ListViewItem(objekt);

                    //Lägger till anstallda till taggen så vi kan använda informationen.
                    listobjekt.Tag = ListaPerson[i];

                    FPListView.Items.Add(listobjekt);
                    textBoxNotifier.Text = "Du har klickat på visa alla personförsäkringar. Kolla i ListViewn";
                }
            }
            catch
            {
                textBoxNotifier.Text = "De finns inga försäkringar i programmet.";
            }
        }
        
        #endregion

        #region ÖvrigaF

        //Radera övrigpersonförsäkring
        private void FOBtnRadera_Click(object sender, EventArgs e)
        {
            try
            {
                if (FOListView.SelectedItems.Count != 1)
                {
                    textBoxNotifier.Text = "Var god och välj en försäkring för att ta bort";
                    return;
                }
                if (FOListView.SelectedItems.Count == 1)
                {
                    logikhantering.taBortForetagsForsakring(ftagareID);                    
                    rensaOf();
                    listaUppOvrigPerson();
                    textBoxNotifier.Text = "Försäkringen är nu raderad";
                    FOcomboBoxAgenturNr.Enabled = true;
                }
                else
                {
                    textBoxNotifier.Text = "Var vänligen att välja endast EN försäkring för att ta bort";
                }
            }
            catch { }
        }
        //Rensar fälten i Övrigpersonförsäkring
        public void rensaOf()
        {
            try
            {
                FOtxtBoxFTEfternamn.Text = "";
                FOtxtBoxFTFornamn.Text = "";
                FOtxtBoxFTPersonNr.Text = "";
                FOtxtBoxFTForetagsnamn.Text = "";
                FOtxtBoxFTOrgNr.Text = "";
                FOtxtBoxFTAdress.Text = "";
                FOtxtBoxFTPostNr.Text = "";
                FOtxtBoxFTOrt.Text = "";
                FOtxtBoxFTEpost.Text = "";
                FOtxtBoxFTTelefonArbete.Text = "";
                FOtxtBoxFTTelefonHem.Text = "";
                FOtxtBoxForsakradEfternamn.Text = "";
                FOtxtBoxForsakradFornamn.Text = "";
                FOtxtBoxForsakradPersonNr.Text = "";
                FOtxtBoxPremie.Text = "";
                FOtxtBoxTabell.Text = "";
                FOcomboBoxBetalningsForm.SelectedIndex = 0;
                FOcomboBoxAgenturNr.SelectedIndex = 0;
                FOListView.Items.Clear();

                textBoxNotifier.Text = "Alla fält är rensade";
            }
            catch { }
        }
        //Sök i textbox i övrigpersonfliken
        private void FOtxtBoxSok_TextChanged(object sender, EventArgs e)
        {
            FOListView.Items.Clear();
            logikhantering.sokOvrigPerson(FOtxtBoxSok.Text);
            foreach (Forsakring fore in logikhantering.ListaMedHittadOvrigPersonForsakring)
            {


                ListViewItem item = new ListViewItem(new string[] {fore.agenturNr.ToString(), fore.Forsakringstagare.eNamn, fore.Forsakringstagare.fNamn, fore.Forsakringstagare.personNr.ToString(),
                                                                   fore.OrgNr.ToString(), fore.Forsakringstagare.foretagsnamn, fore.Forsakringstagare.gatuadress,fore.Forsakringstagare.postNr.ToString(), fore.Forsakringstagare.ort,
                                                                   fore.Forsakringstagare.teleNrArbete.ToString(), fore.Forsakringstagare.teleNrHem.ToString(), fore.Forsakringstagare.epost, fore.eNamn, fore.fNamn,
                                                                   fore.personNr.ToString(), fore.betalningsPeriod, fore.tabell, fore.oPremie.ToString() });
                item.Tag = fore;
                this.FOListView.Items.Add(item);
            }
            if (string.IsNullOrEmpty(FOtxtBoxSok.Text))
            {
                FOBtnVisaAlla_Click(sender, e);
            }

        }
        //Rensar textboxarna samt enablar sparaknappen och agenturnrcomboboxen
        private void FOBtnRensa_Click(object sender, EventArgs e)
        {
            rensaOf();
            FOcomboBoxAgenturNr.Enabled = true;
            FOBtnSpara.Enabled = true;
        }
        //Fyller i textboxarna av vald ovrigförsäkring och disablar spara knappen
        private void FOListView_SelectedIndexChanged(object sender, EventArgs e)
        {
            FOBtnSpara.Enabled = false;
            FOcomboBoxAgenturNr.Enabled = false;
            try
            {
                if (FOListView.SelectedItems.Count > 0)
                {
                    FOcomboBoxAgenturNr.Text = FOListView.SelectedItems[0].SubItems[0].Text;
                    FOtxtBoxFTEfternamn.Text = FOListView.SelectedItems[0].SubItems[1].Text;
                    FOtxtBoxFTFornamn.Text = FOListView.SelectedItems[0].SubItems[2].Text;
                    FOtxtBoxFTPersonNr.Text = FOListView.SelectedItems[0].SubItems[3].Text;
                    FOtxtBoxFTOrgNr.Text = FOListView.SelectedItems[0].SubItems[4].Text;
                    FOtxtBoxFTForetagsnamn.Text = FOListView.SelectedItems[0].SubItems[5].Text;
                    FOtxtBoxFTAdress.Text = FOListView.SelectedItems[0].SubItems[6].Text;
                    FOtxtBoxFTPostNr.Text = FOListView.SelectedItems[0].SubItems[7].Text;
                    FOtxtBoxFTOrt.Text = FOListView.SelectedItems[0].SubItems[8].Text;
                    FOtxtBoxFTTelefonArbete.Text = FOListView.SelectedItems[0].SubItems[9].Text;
                    FOtxtBoxFTTelefonHem.Text = FOListView.SelectedItems[0].SubItems[10].Text;
                    FOtxtBoxFTEpost.Text = FOListView.SelectedItems[0].SubItems[11].Text;
                    FOtxtBoxForsakradEfternamn.Text = FOListView.SelectedItems[0].SubItems[12].Text;
                    FOtxtBoxForsakradFornamn.Text = FOListView.SelectedItems[0].SubItems[13].Text;
                    FOtxtBoxForsakradPersonNr.Text = FOListView.SelectedItems[0].SubItems[14].Text;
                    FOcomboBoxBetalningsForm.Text = FOListView.SelectedItems[0].SubItems[15].Text;
                    FOtxtBoxTabell.Text = FOListView.SelectedItems[0].SubItems[16].Text;
                    FOtxtBoxPremie.Text = FOListView.SelectedItems[0].SubItems[17].Text;
                    ftagareID = int.Parse(FOListView.SelectedItems[0].SubItems[18].Text);

                    if (FOListView.SelectedItems[0].SubItems[4].Text.Equals("")) { radioButton2.Checked = true; }
                    else if (FOListView.SelectedItems[0].SubItems[3].Text.Equals("")) { radioButton1.Checked = true; }
                }
            }
            catch { }
        }
        //Övriga personföräskring hämtar metoden för att lista upp dem
        private void FOBtnVisaAlla_Click(object sender, EventArgs e)
        {
            listaUppOvrigPerson();
        }
        //Uppdatera övrigpersonförsäkring
        private void FOBtnUppdatera_Click(object sender, EventArgs e)
        {
            if (FOListView.SelectedItems.Count == 1)
            {
                if (String.IsNullOrEmpty(FOtxtBoxFTPersonNr.Text) == true && String.IsNullOrEmpty(FOtxtBoxFTOrgNr.Text) == true
                || String.IsNullOrEmpty(FOcomboBoxAgenturNr.Text) == true)
                {
                    MessageBox.Show("Kontrollera att det finns ett \nPersonnummer eller Organisationsnummer och ett agenturnummer");
                    return;
                }

                if (!String.IsNullOrEmpty(FOtxtBoxFTPersonNr.Text) == true)
                {
                    string[] omvandla = new string[] { FOtxtBoxFTPersonNr.Text };
                    bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera försäkringstagarens persNr, skriv 10 siffror och utan mellanslag";
                        return;
                    }
                }
                else { FOtxtBoxFTPersonNr.Text = "0"; }
                if (!String.IsNullOrEmpty(FOtxtBoxFTOrgNr.Text) == true)
                {
                    string[] omvandla = new string[] { FOtxtBoxFTOrgNr.Text };
                    bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera försäkringstagarens orgNr, skriv 10 siffror och utan mellanslag";
                        return;
                    }
                }
                else { FOtxtBoxFTOrgNr.Text = "0"; }
                if (!String.IsNullOrEmpty(FOtxtBoxFTPostNr.Text) == true)
                {
                    string[] omvandla = new string[] { FOtxtBoxFTPostNr.Text };
                    bool omvandlingLyckades = logikhantering.IntParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera Postnummret, ex: 12345 utan mellanslag";
                        return;
                    }
                }
                else { FOtxtBoxFTPostNr.Text = "0"; }
                if (!String.IsNullOrEmpty(FOtxtBoxFTTelefonArbete.Text) == true)
                {
                    string[] omvandla = new string[] { FOtxtBoxFTTelefonArbete.Text };
                    bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera Telefonarbete, skriv med siffror och utan mellanslag";
                        return;
                    }
                }
                else { FOtxtBoxFTTelefonArbete.Text = "0"; }
                if (!String.IsNullOrEmpty(FOtxtBoxFTTelefonHem.Text) == true)
                {
                    string[] omvandla = new string[] { FOtxtBoxFTTelefonHem.Text };
                    bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera Telefonhem, skriv med siffror och utan mellanslag";
                        return;
                    }
                }
                else { FOtxtBoxFTTelefonHem.Text = "0"; }
                if (!String.IsNullOrEmpty(FOtxtBoxForsakradPersonNr.Text) == true)
                {
                    string[] omvandla = new string[] { FOtxtBoxForsakradPersonNr.Text };
                    bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera den försäkrades Personnummer, skriv 10 siffror och utan mellanslag";
                        return;
                    }
                }
                else { FOtxtBoxForsakradPersonNr.Text = "0"; }
                if (!String.IsNullOrEmpty(FOtxtBoxPremie.Text) == true)
                {
                    string[] omvandla = new string[] { FOtxtBoxPremie.Text };
                    bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera Premie, skriv med siffror och utan mellanslag";

                        return;
                    }
                }
                else { FOtxtBoxPremie.Text = "0"; }

                if (String.IsNullOrEmpty(FOtxtBoxFTEfternamn.Text) == true) { FOtxtBoxFTEfternamn.Text = ""; }
                if (String.IsNullOrEmpty(FOtxtBoxFTFornamn.Text) == true) { FOtxtBoxFTEfternamn.Text = ""; }
                if (String.IsNullOrEmpty(FOtxtBoxFTForetagsnamn.Text) == true) { FOtxtBoxFTForetagsnamn.Text = ""; }
                if (String.IsNullOrEmpty(FOtxtBoxFTAdress.Text) == true) { FOtxtBoxFTAdress.Text = ""; }
                if (String.IsNullOrEmpty(FOtxtBoxFTOrt.Text) == true) { FOtxtBoxFTOrt.Text = ""; }
                if (String.IsNullOrEmpty(FOtxtBoxFTEpost.Text) == true) { FOtxtBoxFTEpost.Text = ""; }
                if (String.IsNullOrEmpty(FOtxtBoxForsakradEfternamn.Text) == true) { FOtxtBoxForsakradEfternamn.Text = ""; }
                if (String.IsNullOrEmpty(FOtxtBoxForsakradFornamn.Text) == true) { FOtxtBoxForsakradFornamn.Text = ""; }
                if (String.IsNullOrEmpty(FOtxtBoxTabell.Text) == true) { FOtxtBoxTabell.Text = ""; }
                if (String.IsNullOrEmpty(FOcomboBoxBetalningsForm.Text) == true) { FOcomboBoxBetalningsForm.Text = ""; }

                logikhantering.uppdateraOvrigPerson(FOtxtBoxFTEfternamn.Text, FOtxtBoxFTFornamn.Text, long.Parse(FOtxtBoxFTPersonNr.Text), FOtxtBoxFTForetagsnamn.Text,
                    long.Parse(FOtxtBoxFTOrgNr.Text), FOtxtBoxFTAdress.Text, FOtxtBoxFTOrt.Text, int.Parse(FOtxtBoxFTPostNr.Text), int.Parse(FOtxtBoxFTTelefonHem.Text),
                    int.Parse(FOtxtBoxFTTelefonArbete.Text), FOtxtBoxFTEpost.Text, FOtxtBoxForsakradEfternamn.Text, FOtxtBoxForsakradFornamn.Text,
                    long.Parse(FOtxtBoxForsakradPersonNr.Text), int.Parse(FOtxtBoxPremie.Text), FOtxtBoxTabell.Text, FOcomboBoxBetalningsForm.Text,
                    int.Parse(FOcomboBoxAgenturNr.Text), ftagareID);
                rensaOf();
                listaUppOvrigPerson();
                textBoxNotifier.Text = "Listan är uppdaterad";
                FOcomboBoxAgenturNr.Enabled = true;
            }
            else
            {
                textBoxNotifier.Text = "Välj en person i listviewn för att uppdatera";
            }
        }
        //Disablar valda textboxar och eneblar valda texboxar
        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            FOtxtBoxFTEfternamn.Enabled = true;
            FOtxtBoxFTFornamn.Enabled = true;
            FOtxtBoxFTPersonNr.Enabled = true;
            FOtxtBoxFTForetagsnamn.Enabled = false;
            FOtxtBoxFTOrgNr.Enabled = false;
            FOtxtBoxFTForetagsnamn.Text = null;
            FOtxtBoxFTOrgNr.Text = null;
        }
        //Disablar valda textboxar och eneblar valda texboxar
        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            FOtxtBoxFTEfternamn.Enabled = false;
            FOtxtBoxFTFornamn.Enabled = false;
            FOtxtBoxFTPersonNr.Enabled = false;
            FOtxtBoxFTForetagsnamn.Enabled = true;
            FOtxtBoxFTOrgNr.Enabled = true;
            FOtxtBoxFTEfternamn.Text = null;
            FOtxtBoxFTFornamn.Text = null;
            FOtxtBoxFTPersonNr.Text = null;
        }
        //Skriver ut övriga personförsäkringar
        private void FOBtnSkrivUt_Click(object sender, EventArgs e)
        {
            Microsoft.Office.Interop.Excel.Application xla = new Microsoft.Office.Interop.Excel.Application();
            xla.Visible = true;
            Microsoft.Office.Interop.Excel.Workbook wb = xla.Workbooks.Add(Microsoft.Office.Interop.Excel.XlSheetType.xlWorksheet);
            Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)xla.ActiveSheet;
            Excel.Range chartRange;

            ws.Cells[1, 1] = "Försäkringstagare";
            ws.Cells[1, 10] = "Försäkrad";
            ws.Cells[2, 1] = "AgenturNr";
            ws.Cells[2, 2] = "Efternamn";
            ws.Cells[2, 3] = "Förnamn";
            ws.Cells[2, 4] = "PersonNr";
            ws.Cells[2, 5] = "OrgNr";
            ws.Cells[2, 6] = "Företagsnamn";
            ws.Cells[2, 7] = "Adress";
            ws.Cells[2, 8] = "PostNr";
            ws.Cells[2, 9] = "Ort";
            ws.Cells[2, 10] = "Nr-Arbete";
            ws.Cells[2, 11] = "Hem nr";
            ws.Cells[2, 12] = "Epost";
            ws.Cells[2, 13] = "Efternamn";
            ws.Cells[2, 14] = "Förnamn";
            ws.Cells[2, 15] = "PersonNr";
            ws.Cells[2, 16] = "Betalningsform";
            ws.Cells[2, 17] = "Tabell";
            ws.Cells[2, 18] = "Premie";
            ws.Cells[2, 19] = "FörsäkringsID";


            chartRange = ws.get_Range("a1", "a1");
            chartRange.Font.Bold = true;
            chartRange = ws.get_Range("j1", "j1");
            chartRange.Font.Bold = true;


            int i = 2, j = 3;

            foreach (ListViewItem lvi in FOListView.SelectedItems)
            {
                i = 1;
                foreach (ListViewItem.ListViewSubItem lvsub in lvi.SubItems)
                {
                    ws.Cells[j, i] = lvsub.Text;
                    i++;
                }
                j++;
                FOListView.Items.Clear();
            }
            listaUppOvrigPerson();
        }
        //Spara övrigpersonsförsäkring
        private void FOBtnSpara_Click(object sender, EventArgs e)
        {
            //try
            //{
            if (String.IsNullOrEmpty(FOtxtBoxFTPersonNr.Text) == true && String.IsNullOrEmpty(FOtxtBoxFTOrgNr.Text) == true
                || String.IsNullOrEmpty(FOcomboBoxAgenturNr.Text) == true || FPcomboBoxAgenturNr.Text == "-Välj-")
            {
                MessageBox.Show("Kontrollera att det finns ett \nPersonnummer eller Organisationsnummer och ett agenturnummer");
                return;
            }
            if (String.IsNullOrEmpty(FOcomboBoxAgenturNr.Text) == true)
            {
                //MessageBox.Show("Välj ett agenturNr!");
                textBoxNotifier.Text = "Välj ett agenturnummer";
                return;
            }
            if (!String.IsNullOrEmpty(FOtxtBoxFTPersonNr.Text) == true)
            {
                string[] omvandla = new string[] { FOtxtBoxFTPersonNr.Text };
                bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera försäkringstagarens persNr, skriv 10 siffror och utan mellanslag";
                    return;
                }
            }
            else { FOtxtBoxFTPersonNr.Text = "0"; }
            if (!String.IsNullOrEmpty(FOtxtBoxFTOrgNr.Text) == true)
            {
                string[] omvandla = new string[] { FOtxtBoxFTOrgNr.Text };
                bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera försäkringstagarens orgNr, skriv 10 siffror och utan mellanslag";
                    return;
                }
            }
            else { FOtxtBoxFTOrgNr.Text = "0"; }
            if (!String.IsNullOrEmpty(FOtxtBoxFTPostNr.Text) == true)
            {
                string[] omvandla = new string[] { FOtxtBoxFTPostNr.Text };
                bool omvandlingLyckades = logikhantering.IntParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera Postnummret, ex: 12345 utan mellanslag";
                    return;
                }
            }
            else { FOtxtBoxFTPostNr.Text = "0"; }
            if (!String.IsNullOrEmpty(FOtxtBoxFTTelefonArbete.Text) == true)
            {
                string[] omvandla = new string[] { FOtxtBoxFTTelefonArbete.Text };
                bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera Telefonarbete, skriv med siffror och utan mellanslag";
                    return;
                }
            }
            else { FOtxtBoxFTTelefonArbete.Text = "0"; }
            if (!String.IsNullOrEmpty(FOtxtBoxFTTelefonHem.Text) == true)
            {
                string[] omvandla = new string[] { FOtxtBoxFTTelefonHem.Text };
                bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera Telefonhem, skriv med siffror och utan mellanslag";
                    return;
                }
            }
            else { FOtxtBoxFTTelefonHem.Text = "0"; }
            if (!String.IsNullOrEmpty(FOtxtBoxForsakradPersonNr.Text) == true)
            {
                string[] omvandla = new string[] { FOtxtBoxForsakradPersonNr.Text };
                bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera den försäkrades Personnummer, skriv 10 siffror och utan mellanslag";
                    return;
                }
            }
            else { FOtxtBoxForsakradPersonNr.Text = "0"; }
            if (!String.IsNullOrEmpty(FOtxtBoxPremie.Text) == true)
            {
                string[] omvandla = new string[] { FOtxtBoxPremie.Text };
                bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera Premie, skriv med siffror och utan mellanslag";

                    return;
                }
            }
            else { FOtxtBoxPremie.Text = "0"; }

            if (String.IsNullOrEmpty(FOtxtBoxFTEfternamn.Text) == true) { FOtxtBoxFTEfternamn.Text = ""; }
            if (String.IsNullOrEmpty(FOtxtBoxFTFornamn.Text) == true) { FOtxtBoxFTEfternamn.Text = ""; }
            if (String.IsNullOrEmpty(FOtxtBoxFTForetagsnamn.Text) == true) { FOtxtBoxFTForetagsnamn.Text = ""; }
            if (String.IsNullOrEmpty(FOtxtBoxFTAdress.Text) == true) { FOtxtBoxFTAdress.Text = ""; }
            if (String.IsNullOrEmpty(FOtxtBoxFTOrt.Text) == true) { FOtxtBoxFTOrt.Text = ""; }
            if (String.IsNullOrEmpty(FOtxtBoxFTEpost.Text) == true) { FOtxtBoxFTEpost.Text = ""; }
            if (String.IsNullOrEmpty(FOtxtBoxForsakradEfternamn.Text) == true) { FOtxtBoxForsakradEfternamn.Text = ""; }
            if (String.IsNullOrEmpty(FOtxtBoxForsakradFornamn.Text) == true) { FOtxtBoxForsakradFornamn.Text = ""; }
            if (String.IsNullOrEmpty(FOtxtBoxTabell.Text) == true) { FOtxtBoxTabell.Text = ""; }
            if (String.IsNullOrEmpty(FOcomboBoxBetalningsForm.Text) == true) { FOcomboBoxBetalningsForm.Text = ""; }

            if (0 == 0)
            {
                logikhantering.laggatillOvrigForsakring(FOtxtBoxFTEfternamn.Text, FOtxtBoxFTFornamn.Text, long.Parse(FOtxtBoxFTPersonNr.Text),
                    FOtxtBoxFTForetagsnamn.Text, long.Parse(FOtxtBoxFTOrgNr.Text), FOtxtBoxFTAdress.Text, FOtxtBoxFTOrt.Text,
                    int.Parse(FOtxtBoxFTPostNr.Text), long.Parse(FOtxtBoxFTTelefonHem.Text), long.Parse(FOtxtBoxFTTelefonArbete.Text),
                    FOtxtBoxFTEpost.Text, FOtxtBoxForsakradEfternamn.Text, FOtxtBoxForsakradFornamn.Text, long.Parse(FOtxtBoxForsakradPersonNr.Text),
                    long.Parse(FOtxtBoxPremie.Text), FOtxtBoxTabell.Text, FOcomboBoxBetalningsForm.Text, int.Parse(FOcomboBoxAgenturNr.Text), "Ovrig");
                rensaOf();
                listaUppOvrigPerson();
                textBoxNotifier.Text = "Sparningen lyckades, en övrig personförsäkring är nu registrerad";
            }
        }
        //Hämtar alla övriga försäkringar
        public void listaUppOvrigPerson()
        {
            FOListView.Items.Clear();

            List<Forsakring> ListaOvrigPersoner = logikhantering.HamtaOvrigPerson();
            try
            {
                for (int i = 0; i < ListaOvrigPersoner.Count; i++)
                {
                    string[] objekt = new string[19];

                    //försäringtagare
                    objekt[0] = ListaOvrigPersoner[i].agenturNr.ToString();
                    objekt[1] = ListaOvrigPersoner[i].Forsakringstagare.eNamn;
                    objekt[2] = ListaOvrigPersoner[i].Forsakringstagare.fNamn;
                    objekt[3] = ListaOvrigPersoner[i].Forsakringstagare.personNr.ToString();
                    objekt[4] = ListaOvrigPersoner[i].Forsakringstagare.orgNr.ToString();
                    objekt[5] = ListaOvrigPersoner[i].Forsakringstagare.foretagsnamn;
                    objekt[6] = ListaOvrigPersoner[i].Forsakringstagare.gatuadress;
                    objekt[7] = ListaOvrigPersoner[i].Forsakringstagare.postNr.ToString();
                    objekt[8] = ListaOvrigPersoner[i].Forsakringstagare.ort;
                    objekt[9] = ListaOvrigPersoner[i].Forsakringstagare.teleNrArbete.ToString();
                    objekt[10] = ListaOvrigPersoner[i].Forsakringstagare.teleNrHem.ToString();
                    objekt[11] = ListaOvrigPersoner[i].Forsakringstagare.epost;
                    //försäkrade
                    objekt[12] = ListaOvrigPersoner[i].eNamn;
                    objekt[13] = ListaOvrigPersoner[i].fNamn;
                    objekt[14] = ListaOvrigPersoner[i].personNr.ToString();
                    objekt[15] = ListaOvrigPersoner[i].betalningsPeriod;
                    objekt[16] = ListaOvrigPersoner[i].tabell;
                    objekt[17] = ListaOvrigPersoner[i].oPremie.ToString();
                    objekt[18] = ListaOvrigPersoner[i].fTagareID.ToString();
                    ListViewItem listobjekt = new ListViewItem(objekt);

                    //Lägger till anstallda till taggen så vi kan använda informationen.
                    listobjekt.Tag = ListaOvrigPersoner[i];

                    FOListView.Items.Add(listobjekt);
                    textBoxNotifier.Text = "Du har klickat på visa alla övriga personer. Kolla i ListViewn";
                }
            }
            catch
            {
                textBoxNotifier.Text = "De finns inga försäkringar i programmet.";
            }
        }
        
        #endregion

        #region FöretagsF

        //Rensar textboxarna samt enablar sparaknappen och agenturnrcomboboxen
        private void FFBtnRensa_Click(object sender, EventArgs e)
        {
            rensaFf();
            FFBtnSpara.Enabled = true;
            FFcomboBoxAgenturNummer.Enabled = true;
        }
        //Listar upp alla företag
        private void FFBtnVisaAlla_Click(object sender, EventArgs e)
        {
            listaUppForetag();
        }
        //Uppdatera företagsförsäkring
        private void FFBtnUppdatera_Click(object sender, EventArgs e)
        {
            if (FFListView.SelectedItems.Count == 1)
            {
                if (String.IsNullOrEmpty(FFtxtBoxOrgNr.Text) == true || String.IsNullOrEmpty(FFcomboBoxAgenturNummer.Text) == true || FPcomboBoxAgenturNr.Text == "-Välj-")
                {
                    MessageBox.Show("Kontrollera att det finns ett organisationsNr och ett agenturNr");
                    return;
                }

                if (!String.IsNullOrEmpty(FFtxtBoxOrgNr.Text) == true)
                {
                    string[] omvandla = new string[] { FFtxtBoxOrgNr.Text };
                    bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera försäkringstagarens orgNr, skriv 10 siffror och utan mellanslag";
                        return;
                    }
                }
                else { FFtxtBoxOrgNr.Text = "0"; }
                if (!String.IsNullOrEmpty(FFtxtBoxPostNummer.Text) == true)
                {
                    string[] omvandla = new string[] { FFtxtBoxPostNummer.Text };
                    bool omvandlingLyckades = logikhantering.IntParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera Postnummret, ex: 12345 utan mellanslag";
                        return;
                    }
                }
                else { FFtxtBoxPostNummer.Text = "0"; }
                if (!String.IsNullOrEmpty(FFtxtBoxTelefonNr.Text) == true)
                {
                    string[] omvandla = new string[] { FFtxtBoxTelefonNr.Text };
                    bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera telefonnummer, skriv med siffror";
                        return;
                    }
                }
                else { FFtxtBoxTelefonNr.Text = "0"; }
                if (!String.IsNullOrEmpty(FFtxtBoxFaxNr.Text) == true)
                {
                    string[] omvandla = new string[] { FFtxtBoxFaxNr.Text };
                    bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera faxnummer, skriv med siffror";
                        return;
                    }
                }
                else { FFtxtBoxFaxNr.Text = "0"; }
                if (!String.IsNullOrEmpty(FFtxtBoxPremie.Text) == true)
                {
                    string[] omvandla = new string[] { FFtxtBoxPremie.Text };
                    bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                    if (omvandlingLyckades != true)
                    {
                        textBoxNotifier.Text = "Kontrollera faxnummer, skriv med siffror";
                        return;
                    }
                }
                else { FFtxtBoxPremie.Text = "0"; }

                if (String.IsNullOrEmpty(FFtxtBoxForetagsnamn.Text) == true) { FFtxtBoxForetagsnamn.Text = ""; }
                if (String.IsNullOrEmpty(FFtxtBoxKontaktPerson.Text) == true) { FFtxtBoxKontaktPerson.Text = ""; }
                if (String.IsNullOrEmpty(FFtxtBoxAdress.Text) == true) { FFtxtBoxAdress.Text = ""; }
                if (String.IsNullOrEmpty(FFtxtBoxOrt.Text) == true) { FFtxtBoxOrt.Text = ""; }
                if (String.IsNullOrEmpty(FFtxtBoxForsakringsbolag.Text) == true) { FFtxtBoxForsakringsbolag.Text = ""; }
                if (String.IsNullOrEmpty(FFcomboBoxForsakringsTyp.Text) == true) { FFcomboBoxForsakringsTyp.Text = ""; }
                if (String.IsNullOrEmpty(FFcomboBoxBetalningsperiod.Text) == true) { FFcomboBoxBetalningsperiod.Text = ""; }
                if (String.IsNullOrEmpty(FFtxtBoxAnteckningar.Text) == true) { FFtxtBoxAnteckningar.Text = ""; }
                if (String.IsNullOrEmpty(FFtxtBoxEmail.Text) == true) { FFtxtBoxEmail.Text = ""; }

                logikhantering.uppdateraForetagsForsakring(FFtxtBoxForetagsnamn.Text, long.Parse(FFtxtBoxOrgNr.Text), FFtxtBoxKontaktPerson.Text,
                    FFtxtBoxAdress.Text, int.Parse(FFtxtBoxPostNummer.Text), FFtxtBoxOrt.Text, int.Parse(FFtxtBoxTelefonNr.Text), int.Parse(FFtxtBoxFaxNr.Text),
                    FFtxtBoxForsakringsbolag.Text, FFcomboBoxForsakringsTyp.Text, FFcomboBoxBetalningsperiod.Text, DateTime.Parse(FFdateTimeStartdatum.Text),
                    DateTime.Parse(FFdateTimeForfallodag.Text), int.Parse(FFtxtBoxPremie.Text), FFtxtBoxAnteckningar.Text, int.Parse(FFcomboBoxAgenturNummer.Text), ftagareID,
                    FFtxtBoxEmail.Text);
                rensaFf();
                listaUppForetag();
                textBoxNotifier.Text = "Listan är uppdaterad";
                FFcomboBoxAgenturNummer.Enabled = true;
            }
            else
            {
                textBoxNotifier.Text = "Välj ett företag i listviewn för att uppdatera";
            }
        }
        //Fyller i textboxarna av vald företag och disablar spara knappen
        private void FFListView_SelectedIndexChanged(object sender, EventArgs e)
        {
            FFcomboBoxAgenturNummer.Enabled = false;
            FFBtnSpara.Enabled = false;
            try
            {
                if (FFListView.SelectedItems.Count > 0)
                {
                    FFcomboBoxAgenturNummer.Text = FFListView.SelectedItems[0].SubItems[0].Text;
                    FFtxtBoxForetagsnamn.Text = FFListView.SelectedItems[0].SubItems[1].Text;
                    FFtxtBoxOrgNr.Text = FFListView.SelectedItems[0].SubItems[2].Text;
                    FFtxtBoxKontaktPerson.Text = FFListView.SelectedItems[0].SubItems[3].Text;
                    FFtxtBoxAdress.Text = FFListView.SelectedItems[0].SubItems[4].Text;
                    FFtxtBoxPostNummer.Text = FFListView.SelectedItems[0].SubItems[5].Text;
                    FFtxtBoxOrt.Text = FFListView.SelectedItems[0].SubItems[6].Text;
                    FFtxtBoxTelefonNr.Text = FFListView.SelectedItems[0].SubItems[7].Text;
                    FFtxtBoxFaxNr.Text = FFListView.SelectedItems[0].SubItems[8].Text;
                    FFtxtBoxForsakringsbolag.Text = FFListView.SelectedItems[0].SubItems[9].Text;
                    FFcomboBoxForsakringsTyp.Text = FFListView.SelectedItems[0].SubItems[10].Text;
                    FFcomboBoxBetalningsperiod.Text = FFListView.SelectedItems[0].SubItems[11].Text;
                    FFdateTimeStartdatum.Text = FFListView.SelectedItems[0].SubItems[12].Text;
                    FFdateTimeForfallodag.Text = FFListView.SelectedItems[0].SubItems[13].Text;
                    FFtxtBoxPremie.Text = FFListView.SelectedItems[0].SubItems[14].Text;
                    FFtxtBoxAnteckningar.Text = FFListView.SelectedItems[0].SubItems[15].Text;
                    FFtxtBoxEmail.Text = FFListView.SelectedItems[0].SubItems[16].Text;
                    ftagareID = int.Parse(FFListView.SelectedItems[0].SubItems[17].Text);
                }
            }
            catch { }
        }
        //Sök i textbox i företagsfliken
        private void FFtxtBoxSok_TextChanged(object sender, EventArgs e)
        {
            FFListView.Items.Clear();

            logikhantering.sokForetag(FFtxtBoxSok.Text);

            foreach (Forsakring fore in logikhantering.ListaMedHittadForetagsForsakring.Distinct())
            {
                ListViewItem item = new ListViewItem(new string[] {fore.agenturNr.ToString(), fore.Forsakringstagare.foretagsnamn, fore.OrgNr.ToString(), fore.kontaktPerson,
                fore.Forsakringstagare.gatuadress, fore.Forsakringstagare.postNr.ToString(), fore.Forsakringstagare.ort, fore.Forsakringstagare.teleNrArbete.ToString(), fore.Forsakringstagare.faxNr.ToString(), fore.forsakringsBolag, fore.forsakringstyp,
                fore.betalningsPeriod, fore.begynnelseDatum.ToString(), fore.forfallodag.ToString(), fore.fPremie.ToString(), fore.anteckning,
                fore.Forsakringstagare.epost});
                item.Tag = fore;
                this.FFListView.Items.Add(item);
            }
            if (string.IsNullOrEmpty(FFtxtBoxSok.Text))
            {
                FFBtnVisaAlla_Click(sender, e);
            }
        }
        //Rensar fälten i Övrigpersonförsäkring
        public void rensaFf()
        {
            FFtxtBoxForetagsnamn.Text = "";
            FFtxtBoxOrgNr.Text = "";
            FFtxtBoxKontaktPerson.Text = "";
            FFtxtBoxAdress.Text = "";
            FFtxtBoxPostNummer.Text = "";
            FFtxtBoxOrt.Text = "";
            FFtxtBoxTelefonNr.Text = "";
            FFtxtBoxFaxNr.Text = "";
            FFtxtBoxEmail.Text = "";
            FFtxtBoxForsakringsbolag.Text = "";
            FFcomboBoxBetalningsperiod.SelectedIndex = 0;
            FFdateTimeStartdatum.Text = "";
            FFdateTimeForfallodag.Text = "";
            FFcomboBoxAgenturNummer.SelectedIndex = 0;
            FFtxtBoxPremie.Text = "";
            FFcomboBoxForsakringsTyp.SelectedIndex = 0;
            FFtxtBoxAnteckningar.Text = "";
            FFListView.Items.Clear();

            textBoxNotifier.Text = "Alla fält är rensade";
        }
        //Radera företagsförsäkring
        private void FFBtnRadera_Click(object sender, EventArgs e)
        {
            try
            {
                if (FFListView.SelectedItems.Count != 1)
                {
                    textBoxNotifier.Text = "Var god och välj en försäkring för att ta bort";
                    return;
                }
                if (FFListView.SelectedItems.Count == 1)
                {
                    logikhantering.taBortForetagsForsakring(ftagareID);                    
                    rensaFf();
                    listaUppForetag();
                    textBoxNotifier.Text = "Försäkringen är nu raderad";
                    FFcomboBoxAgenturNummer.Enabled = true;
                }
                else
                {
                    textBoxNotifier.Text = "Var vänligen att välja endast EN försäkring för att ta bort";
                }

            }
            catch
            { }
        }
        //Skriver ut företagsförsäkringar
        private void FFBtnSkrivUt_Click(object sender, EventArgs e)
        {
            Microsoft.Office.Interop.Excel.Application xla = new Microsoft.Office.Interop.Excel.Application();
            xla.Visible = true;
            Microsoft.Office.Interop.Excel.Workbook wb = xla.Workbooks.Add(Microsoft.Office.Interop.Excel.XlSheetType.xlWorksheet);
            Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)xla.ActiveSheet;


            ws.Cells[1, 1] = "AgenturNr";
            ws.Cells[1, 2] = "Företagsamn";
            ws.Cells[1, 3] = "OrgNr";
            ws.Cells[1, 4] = "Kontaktperson";
            ws.Cells[1, 5] = "Adress";
            ws.Cells[1, 6] = "PostNr";
            ws.Cells[1, 7] = "Ort";
            ws.Cells[1, 8] = "TeleNr";
            ws.Cells[1, 9] = "FaxNr";
            ws.Cells[1, 10] = "Försäkringsbolag";
            ws.Cells[1, 11] = "Försäkringstyp";
            ws.Cells[1, 12] = "Betalningsperiod";
            ws.Cells[1, 13] = "StartDatum";
            ws.Cells[1, 14] = "Förfallodag";
            ws.Cells[1, 15] = "Premie";
            ws.Cells[1, 16] = "Anteckning";
            ws.Cells[1, 17] = "Epost";
            ws.Cells[1, 18] = "FörsäkringsID";


            int i = 1, j = 2;

            foreach (ListViewItem lvi in FFListView.SelectedItems)
            {
                i = 1;
                foreach (ListViewItem.ListViewSubItem lvsub in lvi.SubItems)
                {
                    ws.Cells[j, i] = lvsub.Text;
                    i++;
                }
                j++;
                FFListView.Items.Clear();
            }
            listaUppForetag();
        }
        //Spara företagsförsäkring
        private void FFBtnSpara_Click(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(FFtxtBoxOrgNr.Text) == true || String.IsNullOrEmpty(FFcomboBoxAgenturNummer.Text) == true || FPcomboBoxAgenturNr.Text == "-Välj-")
            {
                MessageBox.Show("Kontrollera att det finns ett organisationsNr och ett agenturNr");
                return;
            }
            if (String.IsNullOrEmpty(FFcomboBoxAgenturNummer.Text) == true)
            {
                //MessageBox.Show("Välj ett agenturNr!");
                textBoxNotifier.Text = "Välj ett agenturnummer";
                return;
            }
            if (!String.IsNullOrEmpty(FFtxtBoxOrgNr.Text) == true)
            {
                string[] omvandla = new string[] { FFtxtBoxOrgNr.Text };
                bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera försäkringstagarens orgNr";
                    return;
                }
            }
            else { FFtxtBoxOrgNr.Text = "0"; }
            if (!String.IsNullOrEmpty(FFtxtBoxPostNummer.Text) == true)
            {
                string[] omvandla = new string[] { FFtxtBoxPostNummer.Text };
                bool omvandlingLyckades = logikhantering.IntParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera Postnummret, ex: 12345 utan mellanslag";
                    return;
                }
            }
            else { FFtxtBoxPostNummer.Text = "0"; }
            if (!String.IsNullOrEmpty(FFtxtBoxTelefonNr.Text) == true)
            {
                string[] omvandla = new string[] { FFtxtBoxTelefonNr.Text };
                bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera telefonnummer, skriv med siffror";
                    return;
                }
            }
            else { FFtxtBoxTelefonNr.Text = "0"; }
            if (!String.IsNullOrEmpty(FFtxtBoxFaxNr.Text) == true)
            {
                string[] omvandla = new string[] { FFtxtBoxFaxNr.Text };
                bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera faxnummer, skriv med siffror";
                    return;
                }
            }
            else { FFtxtBoxFaxNr.Text = "0"; }
            if (!String.IsNullOrEmpty(FFtxtBoxPremie.Text) == true)
            {
                string[] omvandla = new string[] { FFtxtBoxPremie.Text };
                bool omvandlingLyckades = logikhantering.LongParseLyckades(omvandla);
                if (omvandlingLyckades != true)
                {
                    textBoxNotifier.Text = "Kontrollera faxnummer, skriv med siffror";
                    return;
                }
            }
            else { FFtxtBoxPremie.Text = "0"; }

            if (String.IsNullOrEmpty(FFtxtBoxForetagsnamn.Text) == true) { FFtxtBoxForetagsnamn.Text = ""; }
            if (String.IsNullOrEmpty(FFtxtBoxKontaktPerson.Text) == true) { FFtxtBoxKontaktPerson.Text = ""; }
            if (String.IsNullOrEmpty(FFtxtBoxAdress.Text) == true) { FFtxtBoxAdress.Text = ""; }
            if (String.IsNullOrEmpty(FFtxtBoxOrt.Text) == true) { FFtxtBoxOrt.Text = ""; }
            if (String.IsNullOrEmpty(FFtxtBoxForsakringsbolag.Text) == true) { FFtxtBoxForsakringsbolag.Text = ""; }
            if (String.IsNullOrEmpty(FFcomboBoxForsakringsTyp.Text) == true) { FFcomboBoxForsakringsTyp.Text = ""; }
            if (String.IsNullOrEmpty(FFcomboBoxBetalningsperiod.Text) == true) { FFcomboBoxBetalningsperiod.Text = ""; }
            if (String.IsNullOrEmpty(FFtxtBoxAnteckningar.Text) == true) { FFtxtBoxAnteckningar.Text = ""; }
            if (String.IsNullOrEmpty(FFtxtBoxEmail.Text) == true) { FFtxtBoxEmail.Text = ""; }

            if (0 == 0)
            {
                logikhantering.laggatillForetagForsakring(FFtxtBoxForetagsnamn.Text, long.Parse(FFtxtBoxOrgNr.Text), FFtxtBoxKontaktPerson.Text, FFtxtBoxAdress.Text,
                int.Parse(FFtxtBoxPostNummer.Text), FFtxtBoxOrt.Text, long.Parse(FFtxtBoxTelefonNr.Text), long.Parse(FFtxtBoxFaxNr.Text), FFtxtBoxForsakringsbolag.Text,
                FFcomboBoxForsakringsTyp.Text,
                FFcomboBoxBetalningsperiod.Text, DateTime.Parse(FFdateTimeStartdatum.Text), DateTime.Parse(FFdateTimeForfallodag.Text),
                long.Parse(FFtxtBoxPremie.Text), int.Parse(FFcomboBoxAgenturNummer.Text), FFtxtBoxAnteckningar.Text, "Foretag", FFtxtBoxEmail.Text);
                rensaFf();
                listaUppForetag();
                textBoxNotifier.Text = "Sparningen lyckades, en företagsförsäkring är nu registrerad";
                FFcomboBoxAgenturNummer.Enabled = true;
            }
        }
        //Hämtar alla företagsförsäkringar
        public void listaUppForetag()
        {
            FFListView.Items.Clear();

            List<Forsakring> ListaForetag = logikhantering.HamtaForetag();

            for (int i = 0; i < ListaForetag.Count; i++)
            {
                string[] objekt = new string[18];

                objekt[0] = ListaForetag[i].agenturNr.ToString();
                objekt[1] = ListaForetag[i].Forsakringstagare.foretagsnamn;
                objekt[2] = ListaForetag[i].Forsakringstagare.orgNr.ToString();
                objekt[3] = ListaForetag[i].kontaktPerson;
                objekt[4] = ListaForetag[i].Forsakringstagare.gatuadress;
                objekt[5] = ListaForetag[i].Forsakringstagare.postNr.ToString();
                objekt[6] = ListaForetag[i].Forsakringstagare.ort;
                objekt[7] = ListaForetag[i].Forsakringstagare.teleNrArbete.ToString();
                objekt[8] = ListaForetag[i].Forsakringstagare.faxNr.ToString();
                objekt[9] = ListaForetag[i].forsakringsBolag;
                objekt[10] = ListaForetag[i].fTyp;
                objekt[11] = ListaForetag[i].betalningsPeriod;
                objekt[12] = ListaForetag[i].begynnelseDatum.ToString();
                objekt[13] = ListaForetag[i].forfallodag.ToString();
                objekt[14] = ListaForetag[i].fPremie.ToString();
                objekt[15] = ListaForetag[i].anteckning;
                objekt[16] = ListaForetag[i].Forsakringstagare.epost;
                objekt[17] = ListaForetag[i].fTagareID.ToString();

                ListViewItem listobjekt = new ListViewItem(objekt);

                //Lägger till anstallda till taggen så vi kan använda informationen.
                listobjekt.Tag = ListaForetag[i];

                FFListView.Items.Add(listobjekt);
                textBoxNotifier.Text = "Du har klickat på visa alla Företag. Kolla i ListViewn";
            }
            //textBoxNotifier.Text = "De finns inga försäkringar i programmet.";

        }
        
        #endregion

        #endregion

        #region Grundbelopp / Ack.värde
        //Hämtar metoden som listar upp alla grundbelopp/ackvärden
        private void GrunduppgiftBtnVisa_Click(object sender, EventArgs e)
        {
            visaGrundbelopp();
        }
        //Hämtar alla grundbelopp för vald typ
        private void visaGrundbelopp()
        {
            GrundbeloppListView.Items.Clear();

            List<ForsakringsUtbud> Grunduppgift = logikhantering.HamtaGrunduppgifterviaFtyp(GrundbeloppComboBoxValjForsakringstyp.Text);

            for (int i = 0; i < Grunduppgift.Count; i++)
            {
                string[] objekt = new string[5];

                objekt[0] = Grunduppgift[i].datum.ToString();
                objekt[1] = Grunduppgift[i].grundbelopp.ToString();
                objekt[2] = Grunduppgift[i].ackvarde.ToString();
                objekt[3] = Grunduppgift[i].forsakringsTyp;
                objekt[4] = Grunduppgift[i].grundDataID.ToString();

                ListViewItem listobjekt = new ListViewItem(objekt);

                //Lägger till anstallda till taggen så vi kan använda informationen.
                listobjekt.Tag = Grunduppgift[i];

                GrundbeloppListView.Items.Add(listobjekt);
                textBoxNotifier.Text = "Alla grundbelopp av vald typ visas nu i ListViewn";

            }
        }
        //Raderar vald typ av grundbelopp/ackvärde
        private void GrundbeloppBtnRadera_Click(object sender, EventArgs e)
        {
            try
            {
                if (GrundbeloppListView.SelectedItems.Count != 1)
                {
                    textBoxNotifier.Text = "Var god och välj ett grundbelopp i listviewn";
                    return;
                }
                if (GrundbeloppListView.SelectedItems.Count == 1)
                {
                    logikhantering.taBortGrundbelopp(int.Parse(GrundBelopptxtBoxGrunddataId.Text));
                    rensaGrundbelopp();
                    visaGrundbelopp();
                    textBoxNotifier.Text = "Du har nu tagit bort ett grundbelopp";
                    //GrunduppgiftBtnVisa_Click(sender, e);
                }
                else
                {
                    textBoxNotifier.Text = "Du får bara välja ett grundbelopp i listviewn för att radera";
                }
            }
            catch { }
        }
        //Uppdaterar vald typ av grundbelopp/ackvärde
        private void GrundbeloppBtnUppdatera_Click(object sender, EventArgs e)
        {
            try
            {

                if (GrundbeloppListView.SelectedItems.Count == 1)
                {
                    logikhantering.uppdateraGrundbelopp(int.Parse(GrundBelopptxtBoxGrunddataId.Text), GrundbeloppComboBoxVal.Text,
                                                        DateTime.Parse(GrundbeloppComboboxDatum.Text), long.Parse(GrundbelopptxtBoxGrundbelopp.Text),
                                                        long.Parse(GrundbelopptxtBoxAckvarde.Text));
                    textBoxNotifier.Text = "Ditt grundbelopp är nu uppdaterat";
                    rensaGrundbelopp();
                    visaGrundbelopp();
                    ComboBoxTillval();

                }
                else { textBoxNotifier.Text = "Du måste välja ett grundbelopp i listviewn för att uppdatera"; }
            }
            catch
            {
                textBoxNotifier.Text = "Ett fel uppstod, vänligen kolla uppgifterna";
            }
        }
        //Vald typ hamnar i textboxarna resp. comboboxarna samt disablar knappen spara
        private void GrundbeloppListView_SelectedIndexChanged(object sender, EventArgs e)
        {
            GrundbeloppBtnSpara.Enabled = false;
            if (GrundbeloppListView.SelectedItems.Count > 0)
            {
                GrundbeloppComboboxDatum.Text = GrundbeloppListView.SelectedItems[0].Text;
                GrundbelopptxtBoxGrundbelopp.Text = GrundbeloppListView.SelectedItems[0].SubItems[1].Text;
                GrundbelopptxtBoxAckvarde.Text = GrundbeloppListView.SelectedItems[0].SubItems[2].Text;
                GrundbeloppComboBoxVal.Text = GrundbeloppListView.SelectedItems[0].SubItems[3].Text;
                GrundBelopptxtBoxGrunddataId.Text = GrundbeloppListView.SelectedItems[0].SubItems[4].Text;
            }
        }
        //Sparar ett grundbelopp/ackvärde
        private void GrundbeloppBtnSpara_Click(object sender, EventArgs e)
        {
            if (GrundbeloppComboBoxVal.Text == "Livförsäkring vuxen" || GrundbeloppComboBoxVal.Text == "Tillval - Sjuk och olycksfall" || GrundbeloppComboBoxVal.Text == "Tillval - Sjukersättning")
            {
                if (String.IsNullOrEmpty(GrundbeloppComboboxDatum.Text) == true || string.IsNullOrEmpty(GrundbeloppComboBoxVal.Text)
                   || String.IsNullOrEmpty(GrundbelopptxtBoxGrundbelopp.Text) == true || String.IsNullOrEmpty(GrundbelopptxtBoxAckvarde.Text) == true)
                {
                    MessageBox.Show("Kontrollera att grundbelopp, Typ av försäkring ack.värde \noch datum är ifyllda");
                    try
                    {
                        DateTime.Parse(GrundbeloppComboboxDatum.Text);
                        long.Parse(GrundbelopptxtBoxAckvarde.Text);
                        long.Parse(GrundbelopptxtBoxGrundbelopp.Text);
                        string.IsNullOrEmpty(FPtxtBoxFTEfternamn.Text);
                    }
                    catch (SystemException excep)
                    {

                        MessageBox.Show(excep.Message);
                    }
                }
                else
                {
                    decimal c;
                    decimal a = decimal.Parse(GrundbelopptxtBoxGrundbelopp.Text);
                    decimal b = decimal.Parse(GrundbelopptxtBoxAckvarde.Text);
                    //long q = Convert.ToInt64(b);
                    c = a * b;
                    logikhantering.LaggatillGrundbelopp(GrundbeloppComboBoxVal.Text, DateTime.Parse(GrundbeloppComboboxDatum.Text),
                    decimal.Parse(GrundbelopptxtBoxGrundbelopp.Text), c);                    
                    rensaGrundbelopp();
                    textBoxNotifier.Text = "Ditt grundbelopp är nu sparat";
                    visaGrundbelopp();
                    ComboBoxTillval();

                }
            }
            else
            {
                if (String.IsNullOrEmpty(GrundbeloppComboboxDatum.Text) == true || string.IsNullOrEmpty(GrundbeloppComboBoxVal.Text)
                    || String.IsNullOrEmpty(GrundbelopptxtBoxGrundbelopp.Text) == true || String.IsNullOrEmpty(GrundbelopptxtBoxAckvarde.Text) == true)
                {
                    MessageBox.Show("Kontrollera att grundbelopp, Typ av försäkring ack.värde \noch datum är ifyllda");
                    try
                    {
                        DateTime.Parse(GrundbeloppComboboxDatum.Text);
                        decimal.Parse(GrundbelopptxtBoxAckvarde.Text);
                        decimal.Parse(GrundbelopptxtBoxGrundbelopp.Text);
                        string.IsNullOrEmpty(FPtxtBoxFTEfternamn.Text);
                    }
                    catch (SystemException excep)
                    {

                        MessageBox.Show(excep.Message);
                    }
                }
                else
                {
                    logikhantering.LaggatillGrundbelopp(GrundbeloppComboBoxVal.Text, DateTime.Parse(GrundbeloppComboboxDatum.Text),
                    decimal.Parse(GrundbelopptxtBoxGrundbelopp.Text), decimal.Parse(GrundbelopptxtBoxAckvarde.Text));
                    rensaGrundbelopp();
                    textBoxNotifier.Text = "Ditt grundbelopp är nu sparat";
                    visaGrundbelopp();
                    ComboBoxTillval();

                }
            }
        }
        //Rensar alla grundbeloppfälten samt enablar spara knappen
        private void GrundbeloppBtnRensa_Click(object sender, EventArgs e)
        {
            rensaGrundbelopp();
            textBoxNotifier.Text = "Alla fält är rensade";
            GrundbeloppBtnSpara.Enabled = true;
        }
        //Metod för att rensa grundbelopptextboxarna
        private void rensaGrundbelopp()
        {
            GrundbeloppListView.Items.Clear();
            GrundbeloppComboboxDatum.Text = "";
            GrundbeloppComboBoxVal.Text = "";
            GrundbelopptxtBoxAckvarde.Text = "";
            GrundbelopptxtBoxGrundbelopp.Text = "";
            GrundBelopptxtBoxGrunddataId.Text = "";
            GrundbeloppComboboxDatum.Text = "";
        }

        #endregion

        #region Statistik
        
        //Hämtar anställda för att lista upp statistik för vald anställd
        public void listauppstatistik()
        {
            StatistikListView.Items.Clear();

            List<Anstalld> ListaAnstallda = logikhantering.HamtaAllaAnstallda();
            try
            {
                for (int i = 0; i < ListaAnstallda.Count; i++)
                {
                    string[] objekt = new string[3];
                    objekt[0] = ListaAnstallda[i].fNamn;
                    objekt[1] = ListaAnstallda[i].eNamn;
                    objekt[2] = ListaAnstallda[i].agenturNr.ToString();

                    ListViewItem listobjekt = new ListViewItem(objekt);

                    //Lägger till anstallda till taggen så vi kan använda informationen.
                    listobjekt.Tag = ListaAnstallda[i];

                    StatistikListView.Items.Add(listobjekt);
                    textBoxNotifier.Text = "Du har klickat på visa alla anställda. Kolla i ListViewn";
                }
            }
            catch (SystemException excep)
            {
                MessageBox.Show(excep.Message);
                textBoxNotifier.Text = "Något hände, antingen finns inga registrerade anställda, /ntesta försök igen eller kontakta administratör";
                return;
            }

        }
        //Sökfunktion för hämta anställda 
        private void StatistiktxtboxSok_TextChanged(object sender, EventArgs e)
        {
            StatistikListView.Items.Clear();


            logikhantering.sokAnstalld(StatistiktxtboxSok.Text);
            foreach (Anstallda ans in logikhantering.ListaMedHittadAnstalld.Distinct())
            {
                ListViewItem item = new ListViewItem(new string[] { ans.ForNamn, ans.EfterNamn, ans.AgenturNummer.ToString() });
                item.Tag = ans;
                this.StatistikListView.Items.Add(item);

            }
            if (String.IsNullOrEmpty(StatistiktxtboxSok.Text))
            {
                StatistikBtnVisaAlla_Click(sender, e);
            }
        }
        //Hämtar anställda metod
        private void StatistikBtnVisaAlla_Click(object sender, EventArgs e)
        {
            listauppstatistik();
        }
        //Visar statistik
        private void StatistikBtnVisaStatistik_Click(object sender, EventArgs e)
        {
        }
        //Sökfunktion för statistik när man söker på anställda
        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            StatistikListView.Items.Clear();

            logikhantering.sokAnstalld(StatistiktxtboxSok.Text);
            foreach (Anstallda ans in logikhantering.ListaMedHittadAnstalld.Distinct())
            {
                ListViewItem item = new ListViewItem(new string[] { ans.ForNamn, ans.EfterNamn, ans.AgenturNummer.ToString() });
                item.Tag = ans;
                this.StatistikListView.Items.Add(item);

            }

        }
        //Skriver ut Statistiktabell
        private void StatistikBtnVisaTabell_Click(object sender, EventArgs e)
        {
            if (StatistikListView.SelectedItems.Count == 1)
            {
                logikhantering.RäknaStatistik(int.Parse(StatistikAgnr.Text));
                SkrivUtStatistikTabell();
                logikhantering.bJan = 0;
                logikhantering.vJan = 0;
                logikhantering.sumJan = 0;

                logikhantering.bFeb = 0;
                logikhantering.vFeb = 0;
                logikhantering.sumFeb = 0;

                logikhantering.bMar = 0;
                logikhantering.vMar = 0;
                logikhantering.sumMar = 0;

                logikhantering.bApr = 0;
                logikhantering.vApr = 0;
                logikhantering.sumApr = 0;

                logikhantering.bMaj = 0;
                logikhantering.vMaj = 0;
                logikhantering.sumMaj = 0;

                logikhantering.bJun = 0;
                logikhantering.vJun = 0;
                logikhantering.sumJun = 0;

                logikhantering.bJul = 0;
                logikhantering.vJul = 0;
                logikhantering.sumJul = 0;

                logikhantering.bAgu = 0;
                logikhantering.vAgu = 0;
                logikhantering.sumAgu = 0;

                logikhantering.bSep = 0;
                logikhantering.vSep = 0;
                logikhantering.sumSep = 0;

                logikhantering.bOkt = 0;
                logikhantering.vOkt = 0;
                logikhantering.sumOkt = 0;

                logikhantering.bNov = 0;
                logikhantering.vNov = 0;
                logikhantering.sumNov = 0;

                logikhantering.bDec = 0;
                logikhantering.vDec = 0;
                logikhantering.sumDec = 0;

                logikhantering.total = 0;
                logikhantering.medel = 0;
            }
        }
        //Skriver ut Statistiktabell
        private void SkrivUtStatistikTabell()
        {
            Microsoft.Office.Interop.Excel.Application xla = new Microsoft.Office.Interop.Excel.Application();
            xla.Visible = true;
            Microsoft.Office.Interop.Excel.Workbook wb = xla.Workbooks.Add(Microsoft.Office.Interop.Excel.XlSheetType.xlWorksheet);
            Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)xla.ActiveSheet;

            ws.Cells[1, 1] = DateTime.Now.Year.ToString();

            ws.Cells[1, 5] = "Januari";
            ws.Cells[1, 8] = "Februari";
            ws.Cells[1, 11] = "Mars";
            ws.Cells[1, 14] = "April";
            ws.Cells[1, 17] = "Maj";
            ws.Cells[1, 20] = "Juni";
            ws.Cells[1, 23] = "Juli";
            ws.Cells[1, 26] = "Augusti";
            ws.Cells[1, 29] = "September";
            ws.Cells[1, 32] = "Oktober";
            ws.Cells[1, 35] = "November";
            ws.Cells[1, 38] = "December";
            ws.Cells[1, 41] = "Året";
            

            int i = 1, j = 3;

            foreach (ListViewItem lvi in StatistikListView.SelectedItems)
            {
                i = 1;
                foreach (ListViewItem.ListViewSubItem lvsub in lvi.SubItems)
                {
                    ws.Cells[j, i] = lvsub.Text;
                    ws.Cells[j, 4] = logikhantering.bJan;
                    ws.Cells[j, 5] = logikhantering.vJan;
                    ws.Cells[j, 6] = logikhantering.sumJan;

                    ws.Cells[j, 7] = logikhantering.bFeb;
                    ws.Cells[j, 8] = logikhantering.vFeb;
                    ws.Cells[j, 9] = logikhantering.sumFeb;

                    ws.Cells[j, 10] = logikhantering.bMar;
                    ws.Cells[j, 11] = logikhantering.vMar;
                    ws.Cells[j, 12] = logikhantering.sumMar;

                    ws.Cells[j, 13] = logikhantering.bApr;
                    ws.Cells[j, 14] = logikhantering.vApr;
                    ws.Cells[j, 15] = logikhantering.sumApr;

                    ws.Cells[j, 16] = logikhantering.bMaj;
                    ws.Cells[j, 17] = logikhantering.vMaj;
                    ws.Cells[j, 18] = logikhantering.sumMaj;

                    ws.Cells[j, 19] = logikhantering.bJun;
                    ws.Cells[j, 20] = logikhantering.vJun;
                    ws.Cells[j, 21] = logikhantering.sumJun;

                    ws.Cells[j, 22] = logikhantering.bJul;
                    ws.Cells[j, 23] = logikhantering.vJul;
                    ws.Cells[j, 24] = logikhantering.sumJul;

                    ws.Cells[j, 25] = logikhantering.bAgu;
                    ws.Cells[j, 26] = logikhantering.vAgu;
                    ws.Cells[j, 27] = logikhantering.sumAgu;

                    ws.Cells[j, 28] = logikhantering.bSep;
                    ws.Cells[j, 29] = logikhantering.vSep;
                    ws.Cells[j, 30] = logikhantering.sumSep;

                    ws.Cells[j, 31] = logikhantering.bOkt;
                    ws.Cells[j, 32] = logikhantering.vOkt;
                    ws.Cells[j, 33] = logikhantering.sumOkt;

                    ws.Cells[j, 34] = logikhantering.bNov;
                    ws.Cells[j, 35] = logikhantering.vNov;
                    ws.Cells[j, 36] = logikhantering.sumNov;

                    ws.Cells[j, 37] = logikhantering.bDec;
                    ws.Cells[j, 38] = logikhantering.vDec;
                    ws.Cells[j, 39] = logikhantering.sumDec;

                    ws.Cells[j, 40] = logikhantering.total;
                    ws.Cells[j, 41] = logikhantering.medel;
                    i++;

                }
                j++;
                StatistikListView.Items.Clear();
            }

            int c = 3;
            for (int k = 0; k < 12; k++)
            {
                ws.Cells[2, 1 + c] = "Barn";
                ws.Cells[2, 2 + c] = "Vuxen";
                ws.Cells[2, 3 + c] = "Totalt";
                c = c + 3;
            }

            ws.Cells[2, 40] = "Totalt";
            ws.Cells[2, 41] = "Medel";
        }
        //Används för att unikt identifiera vald anställd
        private void StatistikListView_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (StatistikListView.SelectedItems.Count > 0)
            {
                StatistikFnamn.Text = StatistikListView.SelectedItems[0].Text;
                StatistikAgnr.Text = StatistikListView.SelectedItems[0].SubItems[2].Text;
            }
        }
        
        #endregion

        #region Kundprospekt
        //Hämtar kundprospekten
        private void KundprospektBtnVisaalla_Click(object sender, EventArgs e)
        {
            try
            {
                listViewKundprospekt.Items.Clear();

                List<Forsakring> Kundprospekt = logikhantering.HamtaKundprospekt();

                for (int i = 0; i < Kundprospekt.Count; i++)
                {
                    string[] objekt = new string[11];

                    //försäringtagare
                    objekt[0] = Kundprospekt[i].Forsakringstagare.fNamn;
                    objekt[1] = Kundprospekt[i].Forsakringstagare.eNamn;
                    objekt[2] = Kundprospekt[i].Forsakringstagare.personNr.ToString();

                    objekt[3] = Kundprospekt[i].Forsakringstagare.gatuadress;
                    objekt[4] = Kundprospekt[i].Forsakringstagare.postNr.ToString();
                    objekt[5] = Kundprospekt[i].Forsakringstagare.ort;

                    objekt[6] = Kundprospekt[i].Forsakringstagare.teleNrHem.ToString();
                    objekt[7] = Kundprospekt[i].Forsakringstagare.epost;
                    objekt[8] = Kundprospekt[i].agenturNr.ToString();
                    objekt[9] = Kundprospekt[i].utskriftsdatum.ToString();

                    ListViewItem listobjekt = new ListViewItem(objekt);

                    //Lägger till anstallda till taggen så vi kan använda informationen.
                    listobjekt.Tag = Kundprospekt[i];


                    listViewKundprospekt.Items.Add(listobjekt);

                  
                }
            }
            catch
            {
                textBoxNotifier.Text = "Det finns ingen kundprospekt";
            }
        }
        //Skriver ut kundprospekten samt sätter datum på senaste utskriften på vald typ
        private void KundprospektBtnSkrivut_Click(object sender, EventArgs e)
        {
            if (listViewKundprospekt.SelectedItems.Count >= 1)
            {
                utskriftsdatum = DateTime.Today;

                logikhantering.uppdateraUtskrifsdatum(int.Parse(KundprospektPersNr.Text), utskriftsdatum);

                if (MessageBox.Show("Vill du skriva ut?", "Utskrift", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    Microsoft.Office.Interop.Excel.Application xla = new Microsoft.Office.Interop.Excel.Application();
                    xla.Visible = true;
                    Microsoft.Office.Interop.Excel.Workbook wb = xla.Workbooks.Add(Microsoft.Office.Interop.Excel.XlSheetType.xlWorksheet);
                    Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)xla.ActiveSheet;

                    ws.Cells[1, 1] = "Förnamn";
                    ws.Cells[1, 2] = "Efternamn";
                    ws.Cells[1, 3] = "PersonNr";
                    ws.Cells[1, 4] = "Adress";
                    ws.Cells[1, 5] = "PostNr";
                    ws.Cells[1, 6] = "Ort";
                    ws.Cells[1, 7] = "TeleNr bostad";
                    ws.Cells[1, 8] = "E-post";
                    ws.Cells[1, 9] = "AgenturNr";
                    ws.Cells[1, 10] = "Utskriftsdatum";
                    


                    int i = 1, j = 2;

                    foreach (ListViewItem lvi in listViewKundprospekt.SelectedItems)
                    {
                        i = 1;
                        foreach (ListViewItem.ListViewSubItem lvsub in lvi.SubItems)
                        {
                            ws.Cells[j, i] = lvsub.Text;
                            i++;
                        }
                        j++;
                        KundprospektBtnVisaalla_Click(sender, e);
                    }
                }
                KundprospektBtnVisaalla_Click(sender, e);
            }
            else { textBoxNotifier.Text = "Du måste välja i listViewn"; }
        }

        private void listViewKundprospekt_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listViewKundprospekt.SelectedItems.Count > 0)
            {
                KundprospektPersNr.Text = listViewKundprospekt.SelectedItems[0].SubItems[2].Text;
            }
        }

        #endregion

        #region Teckna försäljning
        
        //Hämtar alla personförsäkringar i tecknad försäkring
        public void listaUppRegistreradPersonforsakring()
        {
            TFListViewPerson.Items.Clear();
            List<Forsakring> ListaPerson = logikhantering.HamtaAllaPersonOchOvrigt();
            try
            {
                for (int i = 0; i < ListaPerson.Count; i++)
                {
                    string[] objekt = new string[5];
                    objekt[0] = ListaPerson[i].personNr.ToString();
                    objekt[1] = ListaPerson[i].eNamn;
                    objekt[2] = ListaPerson[i].fNamn;
                    objekt[3] = ListaPerson[i].forsakringstyp;
                    objekt[4] = ListaPerson[i].lopNr.ToString();

                    ListViewItem listobjekt = new ListViewItem(objekt);

                    //Lägger till anstallda till taggen så vi kan använda informationen.
                    listobjekt.Tag = ListaPerson[i];

                    TFListViewPerson.Items.Add(listobjekt);
                    textBoxNotifier.Text = "Du har klickat på visa alla registrerade personförsäkringar. Kolla i ListViewn";
                }
            }
            catch (SystemException excep)
            {
                MessageBox.Show(excep.Message);
                textBoxNotifier.Text = "Något hände, antingen finns inga registrerade personer, /ntesta försök igen eller kontakta administratör";
                return;
            }
        }
        //Hämtar alla företagsförsäkringar i tecknad försäkring
        public void listaUppRegistreradForetagsForsakring()
        {
            TFListViewForetag.Items.Clear();

            List<Forsakring> ListaForetag = logikhantering.HamtaForetag();

            for (int i = 0; i < ListaForetag.Count; i++)
            {
                string[] objekt = new string[4];

                objekt[0] = ListaForetag[i].Forsakringstagare.orgNr.ToString();
                objekt[1] = ListaForetag[i].Forsakringstagare.foretagsnamn;
                objekt[2] = ListaForetag[i].fTyp;
                objekt[3] = ListaForetag[i].lopNr.ToString();


                ListViewItem listobjekt = new ListViewItem(objekt);

                //Lägger till anstallda till taggen så vi kan använda informationen.
                listobjekt.Tag = ListaForetag[i];

                TFListViewForetag.Items.Add(listobjekt);
                textBoxNotifier.Text = "Du har klickat på visa alla Företag. Kolla i ListViewn";
            }
        }
        //Väljer typ av försäkring som man ska "Verklig teckna"
        private void TFListViewPerson_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                typavforsakring = TFListViewPerson.SelectedItems[0].SubItems[3].Text;
                if (typavforsakring == "Ovrig")
                {
                    TFtxtBoxProvision.Enabled = true;
                }
                else { TFtxtBoxProvision.Enabled = false; }
            }
            catch { }

            if (TFListViewPerson.SelectedItems.Count == 1)
            {
                TFLopnr.Text = TFListViewPerson.SelectedItems[0].SubItems[4].Text;

                TFcomboBoxGrundbelopp.Items.Clear();
                List<ForsakringsUtbud> Grundbelopp = logikhantering.HamtaGrundbeloppTillBarnF();
                for (int i = 0; i < Grundbelopp.Count; i++)
                {
                    string[] objekt = new string[1];
                    objekt[0] = Grundbelopp[i].grundbelopp.ToString();
                    ListItem t = new ListItem(objekt[0], Grundbelopp[i]);
                    TFcomboBoxGrundbelopp.Items.Add(t);
                }
                List<ForsakringsUtbud> Grundbelopp2 = logikhantering.HamtaGrundbeloppTillVuxenF();
                for (int i = 0; i < Grundbelopp2.Count; i++)
                {
                    string[] objekt = new string[1];
                    objekt[0] = Grundbelopp2[i].grundbelopp.ToString();
                    ListItem t = new ListItem(objekt[0], Grundbelopp2[i]);
                    TFcomboBoxGrundbelopp.Items.Add(t);
                }
                

            }
            else
            {
                TFtxtBoxProvision.Enabled = true;

            }

        }
        //Sparar "verklig tecknad försäkring"
        private void TFBtnSparaTecknadForsaljning_Click(object sender, EventArgs e)
        {
            //try
            //{
                if (TFListViewPerson.SelectedItems.Count == 1 && TFListViewForetag.SelectedItems.Count == 1)
                {
                    textBoxNotifier.Text = "Båda listviewna är nu ifyllda var god och välj en";
                }
                if (TFListViewPerson.SelectedItems.Count == 1)
                {
                    decimal tillval1 = 0;
                    decimal.TryParse(TFcomboBoxTillval1.Text, out tillval1);
                    decimal tillval2 = 0;
                    decimal.TryParse(TFcomboBoxTillval2.Text, out tillval2);
                    decimal tillval3 = 0;
                    decimal.TryParse(TFTillvalLivs.Text, out tillval3);
                    decimal provision = 0;
                    decimal.TryParse(TFtxtBoxProvision.Text, out provision);

                    if (TFcomboBoxGrundbelopp.Text == "")
                    {
                        logikhantering.TecknadForsakringsSpara(long.Parse(TFLopnr.Text), TFtxtBoxForsakringsNr.Text,
                        DateTime.Parse(TFDateTimeBetald.Text), 0, tillval1, tillval2, tillval3, "Ja", provision);
                    }
                    else
                    {
                        logikhantering.TecknadForsakringsSpara(long.Parse(TFLopnr.Text), TFtxtBoxForsakringsNr.Text,
                           DateTime.Parse(TFDateTimeBetald.Text), decimal.Parse(TFcomboBoxGrundbelopp.Text), tillval1, tillval2, tillval3, "Ja", provision);
                    }
                                        
                    textBoxNotifier.Text = "Din verklig tecknade försäkring är nu sparad";

                    TFListViewPerson.Items.Clear();
                    TFListViewForetag.Items.Clear();
                    TFDateTimeBetald.Text = "";
                    TFtxtBoxForsakringsNr.Text = "";
                    TFcomboBoxGrundbelopp.Text = "";
                    TFcomboBoxTillval1.Text = "";
                    TFcomboBoxTillval2.Text = "";
                    TFTillvalLivs.Text = "";
                    TFLopnr.Text = "";
                    TFtxtBoxSok.Text = "";
                }
                else
                {

                    textBoxNotifier.Text = "Du måste välja en försäkring i listviewn";
                }
                if (TFListViewForetag.SelectedItems.Count == 1)
                {
                    decimal provision = 0;
                    decimal.TryParse(TFtxtBoxProvision.Text, out provision);
                    logikhantering.TecknadforsakringForetagSpara(long.Parse(LopNrForetag.Text), TFtxtBoxForsakringsNr.Text,
                                                        DateTime.Parse(TFDateTimeBetald.Text), provision, "Ja");

                    textBoxNotifier.Text = "Din verklig tecknade försäkring är nu sparad";
                    TFListViewPerson.Items.Clear();
                    TFListViewPerson.Items.Clear();
                    TFtxtBoxProvision.Text = "";
                    TFtxtBoxSok.Text = "";

                }
            //}
            //catch { textBoxNotifier.Text = "Fel, kontrollera dina uppgifter"; }
        }
        //Söker på en tecknad försäkring för att senare kunna "verkligt teckna den"
        private void TFtxtBoxSok_TextChanged(object sender, EventArgs e)
        {
            TFListViewPerson.Items.Clear();
            logikhantering.SokTF(TFtxtBoxSok.Text);
            foreach (Forsakring f in logikhantering.listan)
            {
                ListViewItem item = new ListViewItem(new string[] { f.personNr.ToString(), f.fNamn, f.eNamn, f.fTyp, f.lopNr.ToString() });
                item.Tag = f;
                this.TFListViewPerson.Items.Add(item);
            }

            logikhantering.SokTForg(TFtxtBoxSok.Text);
            TFListViewForetag.Items.Clear();
            foreach (Forsakring f in logikhantering.listans)
            {
                ListViewItem items = new ListViewItem(new string[] { f.OrgNr.ToString(), f.Forsakringstagare.foretagsnamn, f.fTyp, f.lopNr.ToString() });
                items.Tag = f;
                this.TFListViewForetag.Items.Add(items);
            }


            if (String.IsNullOrEmpty(TFtxtBoxSok.Text))
            {
                TFBtnVisaAlla_Click(sender, e);
            }

        }
        //Selectar vald typ av försäkring
        private void TFListViewForetag_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (TFListViewForetag.SelectedItems.Count == 1)
            {
                LopNrForetag.Text = TFListViewForetag.SelectedItems[0].SubItems[3].Text;
                TFcomboBoxGrundbelopp.Enabled = false;
                TFcomboBoxTillval1.Enabled = false;
                TFcomboBoxTillval2.Enabled = false;
                TFTillvalLivs.Enabled = false;
                kontroll = true;

                grundbelopp = 0;
                tillval1= 0;
                tillval2= 0;
            }
            else
            {
                TFcomboBoxGrundbelopp.Enabled = true;
                TFcomboBoxTillval1.Enabled = true;
                TFcomboBoxTillval2.Enabled = true;
                TFTillvalLivs.Enabled = true;

            }
        }
        //Hämtar metoden för att visa alla företag person och övriga försäkringar
        private void TFBtnVisaAlla_Click(object sender, EventArgs e)
        {
            listaUppRegistreradForetagsForsakring();
            listaUppRegistreradPersonforsakring();
        }
        
        #endregion

        #region Provision

        //Visar all grunddata som skrivs in
        private void buttonGrundDataVisa_Click(object sender, EventArgs e)
        {
            try
            {
                ProvisionListView.Items.Clear();
                List<Provision> prov = logikhantering.HamtaProvision();
                for (int i = 0; i < prov.Count; i++)
                {
                    string[] objekt = new string[6];
                    objekt[0] = prov[i].kalenderAr.ToString();
                    objekt[1] = prov[i].totMinackVärde.ToString();
                    objekt[2] = prov[i].totMaxackVärde.ToString();
                    objekt[3] = prov[i].provisionAndelBarn.ToString();
                    objekt[4] = prov[i].provisionAndelVuxen.ToString();
                    objekt[5] = prov[i].provisionID.ToString();

                    ListViewItem p = new ListViewItem(objekt);

                    ProvisionListView.Items.Add(p);
                }
                textBoxNotifier.Text = "Listan fylls med data";
            }
            catch
            {
                textBoxNotifier.Text = "De finns ingen grunddata i programmet.";
            }
        }
        //fyller i textboxarna med vald provision och disablar knappen spara
        private void ProvisionListView_SelectedIndexChanged(object sender, EventArgs e)
        {
            buttonGrunddataSpara.Enabled = false;
            if (ProvisionListView.SelectedItems.Count > 0)
            {
                ProvisionKalenderAr.Text = ProvisionListView.SelectedItems[0].Text;
                ProvisiontxtBoxMinAck.Text = ProvisionListView.SelectedItems[0].SubItems[1].Text;
                ProvisiontxtBoxMaxAck.Text = ProvisionListView.SelectedItems[0].SubItems[2].Text;
                ProvisionAndelBarn.Text = ProvisionListView.SelectedItems[0].SubItems[3].Text;
                ProvisionAndelVuxen.Text = ProvisionListView.SelectedItems[0].SubItems[4].Text;
                ProvisiontxtBoxPID.Text = ProvisionListView.SelectedItems[0].SubItems[5].Text;
            }
        }
        //Rensar alla textboxar i provision och eneblar knappen spara
        private void ProvisonBtnRensa_Click(object sender, EventArgs e)
        {
            rensaProvision();            
            buttonGrunddataSpara.Enabled = true;
        }
        //Resna metoden för provision
        private void rensaProvision()
        {
            ProvisiontxtBoxMaxAck.Text = "";
            ProvisiontxtBoxMinAck.Text = "";
            ProvisiontxtBoxPID.Text = "";
            ProvisionAndelBarn.Text = "";
            ProvisionAndelVuxen.Text = "";
            ProvisionKalenderAr.Text = "";
            ProvisionListView.Items.Clear();

            textBoxNotifier.Text = "Alla fält är nu rensade";
        }
        //Spara ett belopp av provision
        private void buttonGrunddataSpara_Click(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(ProvisionAndelBarn.Text) == true || String.IsNullOrEmpty(ProvisionAndelVuxen.Text) || String.IsNullOrEmpty(ProvisiontxtBoxMaxAck.Text) == true || String.IsNullOrEmpty(ProvisiontxtBoxMinAck.Text) == true || String.IsNullOrEmpty(ProvisionKalenderAr.Text))
            {
                MessageBox.Show("Kontrollera att grundbelopp, Typ av försäkring ack.värde \noch datum är ifyllda");
                try
                {
                    DateTime.Parse(ProvisionKalenderAr.Text);
                    decimal.Parse(ProvisiontxtBoxMinAck.Text);
                    decimal.Parse(ProvisiontxtBoxMaxAck.Text);
                    decimal.Parse(ProvisionAndelVuxen.Text);
                    decimal.Parse(ProvisionAndelBarn.Text);
                }
                catch
                {
                }
            }
            else
            {

                logikhantering.LaggaTillProvision(DateTime.Parse(ProvisionKalenderAr.Text), decimal.Parse(ProvisiontxtBoxMinAck.Text),
                                                 decimal.Parse(ProvisiontxtBoxMaxAck.Text), decimal.Parse(ProvisionAndelVuxen.Text),
                                                 decimal.Parse(ProvisionAndelBarn.Text));
                rensaProvision();
                buttonGrundDataVisa_Click(sender, e);
                textBoxNotifier.Text = "Informationen är nu sparad";
            }
        }
        //Uppdaterar ett belopp av provision
        private void buttonGrunddataUppdatera_Click(object sender, EventArgs e)
        {
            if (ProvisionListView.SelectedItems.Count == 1)
            {
                logikhantering.UppdateraProvision(int.Parse(ProvisiontxtBoxPID.Text), DateTime.Parse(ProvisionKalenderAr.Text),
                    decimal.Parse(ProvisiontxtBoxMinAck.Text), decimal.Parse(ProvisiontxtBoxMaxAck.Text),
                    decimal.Parse(ProvisionAndelBarn.Text), decimal.Parse(ProvisionAndelVuxen.Text));
                
                buttonGrundDataVisa_Click(sender, e);
                textBoxNotifier.Text = "Informationen har nu uppdaterats";
            }
            else { textBoxNotifier.Text = "Du måste välja i listviewn"; }
        }
        //Raderar vald typ av provision
        private void ProvisionBtnRadera_Click(object sender, EventArgs e)
        {
            try
            {
                if (ProvisionListView.SelectedItems.Count != 1)
                {
                    textBoxNotifier.Text = "Var god och välj i listviewn";
                    return;
                }
                else
                {
                    logikhantering.TaBortProvision(int.Parse(ProvisiontxtBoxPID.Text));
                    buttonGrundDataVisa_Click(sender, e);
                    textBoxNotifier.Text = "Du har nu tagit bort en provisionkolumn";
                    rensaProvision();
                }
            }
            catch
            {
                textBoxNotifier.Text = "Något gick fel.";
            }

        }
        //Värden som används vid provison
        private void skrivUtProvisionen()
        {
            //Här skall nedan värden vävas in i excell;
            double sumBarn = logikhantering.sumBarn;
            double summaackvarden = logikhantering.summaackvarden;
            double sumVuxen = logikhantering.sumVuxen;
            double provisionSO = logikhantering.provisionSO;

        }
        //Skriver ut provisionsbladet
        private void SkrivUtProvisionsMall()
        {
            Microsoft.Office.Interop.Excel.Application xla = new Microsoft.Office.Interop.Excel.Application();
            xla.Visible = true;
            Microsoft.Office.Interop.Excel.Workbook wb = xla.Workbooks.Add(Microsoft.Office.Interop.Excel.XlSheetType.xlWorksheet);
            Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)xla.ActiveSheet;



            ws.Cells[1, 1] = AnstalldtxtBoxFornamn.Text + "  " + AnstalldtxtBoxEfternamn.Text;
            ws.Cells[2, 1] = AnstalldtxtBoxAdress.Text;
            ws.Cells[3, 1] = AnstalldtxtBoxPostNr.Text + "  " + AnstalldtxtBoxOrt.Text;

            ws.Cells[1, 3] = "Provisioner";
            ws.Cells[6, 1] = "Period"; ws.Cells[6, 3] = dTPFran.Text + "  -  " + dTPTill.Text;

            ws.Cells[9, 1] = "Bu summa ackvärde: " + logikhantering.sumBarn;
            ws.Cells[10, 1] = "Vu summa ackvärde: " + logikhantering.sumVuxen;
            ws.Cells[11, 1] = "Summa ackvärde: " + logikhantering.summaackvarden; ws.Cells[11, 7] = "Prov so: " + logikhantering.provisionSO;
            ws.Cells[14, 1] = "Liv summa ackvärde: " + logikhantering.sumLivVuxen; ws.Cells[14, 7] = "Prov liv: " + logikhantering.provisionLiv;
            ws.Cells[17, 1] = "Övrig provision: "; ws.Cells[17, 7] = "Prov övrigt: " + logikhantering.provionOvrig;
            ws.Cells[20, 1] = "Semesterersättning: " + logikhantering.semesterprocent; ws.Cells[20, 7] = "Semesterers.: " + logikhantering.semesterersattning;
            ws.Cells[23, 7] = "Summa Prov: " + logikhantering.summaprov;
            ws.Cells[26, 1] = "Preliminär skatt: " + logikhantering.anstalldskattesats; ws.Cells[26, 7] = "Avgår skatt: " + logikhantering.skatt;
            ws.Cells[29, 1] = "Insättning på bankkonto den: "; ws.Cells[29, 7] = "Att utbetala: " + logikhantering.attUtbetala;



        }
        #endregion

        #region//Behörighetsmetoden

        //Används till behörighetsmetoden för att visa vilken flik som skall visas till vald anställd
        public void behorigetMetod(Int64 behörighetsid)
        {
            //tabbar/flikar skall synas efter inloggningen
            tabControl1.Visible = true;

            //lista på objekt som anropats
            //menu och inloggningstexten
            textBoxNotifier.Text = "Du har nu loggat in";
            loggaInToolStripMenuItem1.Visible = false;
            loggaUtToolStripMenuItem1.Visible = true;

            ////flikar
            //tabControl1.TabPages.Add(TPSell);   //anställd
            //tabControl1.TabPages.Add(tabPage8); //försäkring
            //tabControl1.TabPages.Add(tabPage3); //Grundbelopp
            //tabControl1.TabPages.Add(tabPage4); //teckna f.
            //tabControl1.TabPages.Add(tabPage1); //statistik 
            //tabControl1.TabPages.Add(tabPage6); //kundprospekt
            //tabControl1.TabPages.Add(tabPageGrundDataProvisoner); //GRundData

            //flikar
            tabControl1.TabPages.Remove(TPSell);   //anställd
            tabControl1.TabPages.Remove(tabPage8); //försäkring
            tabControl1.TabPages.Remove(tabPage3); //Grundbelopp
            tabControl1.TabPages.Remove(tabPage4); //teckna f.
            tabControl1.TabPages.Remove(tabPage1); //statistik 
            tabControl1.TabPages.Remove(tabPage6); //kundprospekt
            tabControl1.TabPages.Remove(tabPageGrundDataProvisoner); //GRundData

            //TPSell.Visible = true;  //anställd
            //tabPage8.Visible = true; //försäkring
            //tabPage3.Visible = true; //Grundbelopp
            //tabPage4.Visible = true; //teckna f. 
            //tabPage1.Visible = true; //statistik
            //tabPage6.Visible = true; //kundprospekt            
            //tabPageGrundDataProvisoner.Visible = true; //flik GRundData

            //subeFlikar under tab försäkring
            //tabControl1.TabPages.Add(tabPage9); //person
            //tabControl1.TabPages.Add(tabPage10); //övrig
            //tabControl1.TabPages.Add(tabPage2); //företag
            //tabPage9.Visible = true; // person
            //tabPage10.Visible = true; // övrig
            //tabPage2.Visible = true;  //företag

            //flik Anställd
            //sök
            AnstalldtxtBoxSok.Visible = true;
            AnstalldBtnVisaAlla.Visible = true;
            AnstalldBtnSkrivUt.Visible = true;
            //listview och knappen
            AnstalldListView.Visible = true;
            AnstalldBtnRaknaProvision.Visible = true;
            //groupbox - läggtill
            groupBoxSell.Visible = true;
            //administratör
            radioButtonAdmin.Visible = true;

            //flik försäkring
            //subflik person
            //sök
            FPtxtBoxSok.Visible = true;

            FPBtnVisaAlla.Visible = true;
            FPBtnSkrivUt.Visible = true;
            //listview
            FPListView.Visible = true;
            //groupbox
            FPGrupboxLaggTillKund.Visible = true;

            //flik försäkring
            //subflik övrig
            //sök
            FOtxtBoxSok.Visible = true;
            FOBtnVisaAlla.Visible = true;
            FOBtnSkrivUt.Visible = true;
            //listview
            FOListView.Visible = true;
            //groupbox
            FOgroupBoxLaggTillKund.Visible = true;

            //flik försäkring
            //subflik övrig
            //sök
            FFtxtBoxSok.Visible = true;
            FFBtnVisaAlla.Visible = true;
            FFBtnSkrivUt.Visible = true;
            //listview
            FFListView.Visible = true;
            //groupbox
            FFgroupBoxLaggTillF.Visible = true;

            //flik grundbelopp
            groupBoxGrunduppgifter.Visible = true;
            groupBoxGrundBelopp.Visible = true;
            GrundbeloppListView.Visible = true;
            //flik teckna försäljning
            //sök

            TFtxtBoxSok.Visible = true;
            TFBtnVisaAlla.Visible = true;
            //litsview
            TFListViewForetag.Visible = true;
            TFListViewPerson.Visible = true;
            //groupbox försäljning
            groupBoxFörsäljning.Visible = true;

            //flik statistik
            groupBoxSäljarstatistik.Visible = true;
            groupBoxförsäljningstat.Visible = true;
            //listview och knappen
            StatistikListView.Visible = true;
            StatistikBtnVisaTabell.Visible = true;
            //StatistikBtnVisaDiagram.Visible = true;

            // flik kundprospekt
            KundprospektBtnSkrivut.Visible = true;
            //KundprospektBtnVisaalla.Visible = true;
            listViewKundprospekt.Visible = true;

            //flik GRundData
            tabPageGrundDataProvisoner.Visible = true;
            groupBoxGrunddataUppgifter.Visible = true;

            //inom if satserna skall finnas bara de objekt som skall vara inaktiverad/disable
            //eftersom redan här upp finns allt som visable

            if (behörighetsid == 1) //VD
            {
                //inga förändringar, eftersom VD kan allt
                //flikar
                tabControl1.TabPages.Add(TPSell);   //anställd
                tabControl1.TabPages.Add(tabPage8); //försäkring
                tabControl1.TabPages.Add(tabPage3); //Grundbelopp
                tabControl1.TabPages.Add(tabPage4); //teckna f.
                tabControl1.TabPages.Add(tabPage1); //statistik 
                tabControl1.TabPages.Add(tabPage6); //kundprospekt
                tabControl1.TabPages.Add(tabPageGrundDataProvisoner); //GRundData
                //Lägga till grunddata/provision
                groupBoxGrunddataUppgifter.Visible = true;
            }

            if (behörighetsid == 2) //Försäljningschef
            {
                //flikar
                tabControl1.TabPages.Add(TPSell);   //anställd
                tabControl1.TabPages.Add(tabPage8); //försäkring
                tabControl1.TabPages.Add(tabPage3); //Grundbelopp
                tabControl1.TabPages.Add(tabPage4); //teckna f.
                tabControl1.TabPages.Add(tabPage1); //statistik 
                //tabControl1.TabPages.Add(tabPage6); //kundprospekt
                tabControl1.TabPages.Add(tabPageGrundDataProvisoner); //GRundData
                
                //Lägga till grunddata/provision
                groupBoxGrunddataUppgifter.Visible = false;
            }

            if (behörighetsid == 3) //ekonomiassistent
            {
                ////flikar
                tabControl1.TabPages.Add(TPSell);   //anställd
                tabControl1.TabPages.Add(tabPage8); //försäkring
                //tabControl1.TabPages.Add(tabPage3); //Grundbelopp
                tabControl1.TabPages.Add(tabPage4); //teckna f.
                //tabControl1.TabPages.Add(tabPage1); //statistik 
                //tabControl1.TabPages.Add(tabPage6); //kundprospekt
                tabControl1.TabPages.Add(tabPageGrundDataProvisoner); //GRundData

                //flikar
                tabPage3.Visible = false; //Grundbelopp
                tabPage1.Visible = false; //statistik
                tabPage6.Visible = false; //kundprospekt

                ////flik anställd
                ////groupbox - läggtill
                //groupBoxSell.Visible = false;
                ////groupbox - behörighet
                //groupBox4.Visible = true;

                //subflikar försäkring
                //subflik person
                //groupbox
                FPGrupboxLaggTillKund.Visible = false;

                //flik försäkring
                //subflik övrig
                //groupbox
                FOgroupBoxLaggTillKund.Visible = false;

                //flik försäkring
                //subflik övrig
                //groupbox
                FFgroupBoxLaggTillF.Visible = false;
            }

            if (behörighetsid == 4) // försäljningsassistent
            {
                //flikar
                tabControl1.TabPages.Add(TPSell);   //anställd
                tabControl1.TabPages.Add(tabPage8); //försäkring
                tabControl1.TabPages.Add(tabPage3); //Grundbelopp
                tabControl1.TabPages.Add(tabPage4); //teckna f.
                tabControl1.TabPages.Add(tabPage1); //statistik 
                //tabControl1.TabPages.Add(tabPage6); //kundprospekt
                tabControl1.TabPages.Add(tabPageGrundDataProvisoner); //GRundData


                //flik Anställd
                //sök
                AnstalldtxtBoxSok.Visible = true;
                AnstalldBtnVisaAlla.Visible = true;
                AnstalldBtnSkrivUt.Visible = true;
                //listview och knappen
                AnstalldListView.Visible = true;
                AnstalldBtnRaknaProvision.Visible = true;
                //groupbox - läggtill
                groupBoxSell.Visible = false;

                //flik försäkring
                //subflik person
                //sök
                FPtxtBoxSok.Visible = true;

                FPBtnVisaAlla.Visible = true;
                FPBtnSkrivUt.Visible = true;
                //listview
                FPListView.Visible = true;
                //groupbox
                FPGrupboxLaggTillKund.Visible = false;

                //flik försäkring
                //subflik övrig
                //sök
                FOtxtBoxSok.Visible = true;
                FOBtnVisaAlla.Visible = true;
                FOBtnSkrivUt.Visible = true;
                //listview
                FOListView.Visible = true;
                //groupbox
                FOgroupBoxLaggTillKund.Visible = false;

                //flik försäkring
                //subflik övrig
                //sök
                FFtxtBoxSok.Visible = true;
                FFBtnVisaAlla.Visible = true;
                FFBtnSkrivUt.Visible = true;
                //listview
                FFListView.Visible = true;
                //groupbox
                FFgroupBoxLaggTillF.Visible = false;

                //flik grundbelopp
                groupBoxGrunduppgifter.Visible = true;
                groupBoxGrundBelopp.Visible = true;
                GrundbeloppListView.Visible = true;

                //flik teckna försäljning
                //sök

                TFtxtBoxSok.Visible = true;
                TFBtnVisaAlla.Visible = true;
                //litsview
                TFListViewForetag.Visible = true;
                TFListViewPerson.Visible = true;
                //groupbox försäljning
                groupBoxFörsäljning.Visible = true;

                //flik statistik
                groupBoxSäljarstatistik.Visible = true;
                groupBoxförsäljningstat.Visible = true;
                //listview och knappen
                StatistikListView.Visible = true;
                StatistikBtnVisaTabell.Visible = false;
                //StatistikBtnVisaDiagram.Visible = false;
                //Lägga till grunddata/provision
                groupBoxGrunddataUppgifter.Visible = false;

            }
            if (behörighetsid == 5) // säljare
            {
                //flikar
                tabControl1.TabPages.Add(TPSell);   //anställd
                tabControl1.TabPages.Add(tabPage8); //försäkring
                tabControl1.TabPages.Add(tabPage3); //Grundbelopp
                tabControl1.TabPages.Add(tabPage4); //teckna f.
                tabControl1.TabPages.Add(tabPage1); //statistik 
                //tabControl1.TabPages.Add(tabPage6); //kundprospekt
                tabControl1.TabPages.Add(tabPageGrundDataProvisoner); //GRundData

                //flik Anställd
                //sök
                AnstalldtxtBoxSok.Visible = true;
                AnstalldBtnVisaAlla.Visible = true;
                AnstalldBtnSkrivUt.Visible = true;
                //listview och knappen
                AnstalldListView.Visible = true;
                AnstalldBtnRaknaProvision.Visible = true;
                //groupbox - läggtill
                groupBoxSell.Visible = false;

                //flik försäkring
                //subflik person
                //sök
                FPtxtBoxSok.Visible = true;
                FPBtnVisaAlla.Visible = true;
                FPBtnSkrivUt.Visible = true;
                //listview
                FPListView.Visible = true;
                //groupbox
                FPGrupboxLaggTillKund.Visible = false;

                //flik försäkring
                //subflik övrig
                //sök
                FOtxtBoxSok.Visible = true;
                FOBtnVisaAlla.Visible = true;
                FOBtnSkrivUt.Visible = true;
                //listview
                FOListView.Visible = true;
                //groupbox
                FOgroupBoxLaggTillKund.Visible = false;

                //flik försäkring
                //subflik övrig
                //sök
                FFtxtBoxSok.Visible = true;
                FFBtnVisaAlla.Visible = true;
                FFBtnSkrivUt.Visible = true;
                //listview
                FFListView.Visible = true;
                //groupbox
                FFgroupBoxLaggTillF.Visible = false;

                //flik grundbelopp
                groupBoxGrunduppgifter.Visible = true;
                groupBoxGrundBelopp.Visible = false;
                GrundbeloppListView.Visible = true;

                //flik teckna försäljning
                //sök

                TFtxtBoxSok.Visible = true;
                TFBtnVisaAlla.Visible = true;
                //litsview
                TFListViewForetag.Visible = true;
                TFListViewPerson.Visible = true;
                //groupbox försäljning
                groupBoxFörsäljning.Visible = false;

                //flik statistik
                groupBoxSäljarstatistik.Visible = true;
                groupBoxförsäljningstat.Visible = true;
                //listview och knappen
                StatistikListView.Visible = true;
                StatistikBtnVisaTabell.Visible = false;
                //StatistikBtnVisaDiagram.Visible = false;
                //Lägga till grunddata/provision
                groupBoxGrunddataUppgifter.Visible = false;

            }
            if (behörighetsid == 6)//administartör
            {
                //flikar
                tabControl1.TabPages.Add(TPSell);   //anställd
                //tabControl1.TabPages.Add(tabPage8); //försäkring
                //tabControl1.TabPages.Add(tabPage3); //Grundbelopp
                //tabControl1.TabPages.Add(tabPage4); //teckna f.
                //tabControl1.TabPages.Add(tabPage1); //statistik 
                //tabControl1.TabPages.Add(tabPage6); //kundprospekt
                //tabControl1.TabPages.Add(tabPageGrundDataProvisoner); //GRundData                           

                //flik Anställd
                //sök
                AnstalldtxtBoxSok.Visible = true;
                AnstalldBtnVisaAlla.Visible = true;
                AnstalldBtnSkrivUt.Visible = false;
                //listview och knappen
                AnstalldListView.Visible = true;
                AnstalldBtnRaknaProvision.Visible = false;
                //groupbox - läggtill
                groupBoxSell.Visible = true;
                groupBox1.Visible = false;
                
            }
        }
        
        #endregion

        private void StatistikBtnVisaStatistik_Click_1(object sender, EventArgs e)
        {
            try
            {
                string datum;
                datum = StatistikDatum.Text; 
                logikhantering.RäknaStatistik(int.Parse(StatistikAgnr.Text));
                chart1.Visible = true;

                if (StatistikDatum.Text == "Januari")
                {
                    chart1.Series.Add(StatistikFnamn.Text + " " + stastistikEnamn.Text + " " + datum).Points.AddY(logikhantering.sumJan);
                }
                if (StatistikDatum.Text == "Februari")
                {
                    chart1.Series.Add(StatistikFnamn.Text + " " + stastistikEnamn.Text + " " + datum).Points.AddY(logikhantering.sumFeb);
                }
                if (StatistikDatum.Text == "Mars")
                {
                    chart1.Series.Add(StatistikFnamn.Text + " " + stastistikEnamn.Text + " " + datum).Points.AddY(logikhantering.sumMar);
                }
                if (StatistikDatum.Text == "April")
                {
                    chart1.Series.Add(StatistikFnamn.Text + " " + stastistikEnamn.Text + " " + datum).Points.AddY(logikhantering.sumApr);
                }
                if (StatistikDatum.Text == "Maj")
                {
                    chart1.Series.Add(StatistikFnamn.Text + " " + stastistikEnamn.Text + " " + datum).Points.AddY(logikhantering.sumMaj);
                }
                if (StatistikDatum.Text == "Juni")
                {
                    chart1.Series.Add(StatistikFnamn.Text + " " + stastistikEnamn.Text + " " + datum).Points.AddY(logikhantering.sumJun);
                }
                if (StatistikDatum.Text == "Juli")
                {
                    chart1.Series.Add(StatistikFnamn.Text + " " + stastistikEnamn.Text + " " + datum).Points.AddY(logikhantering.sumJul);
                }
                if (StatistikDatum.Text == "Augusti")
                {
                    chart1.Series.Add(StatistikFnamn.Text + " " + stastistikEnamn.Text + " " + datum).Points.AddY(logikhantering.sumAgu);
                }
                if (StatistikDatum.Text == "September")
                {
                    chart1.Series.Add(StatistikFnamn.Text + " " + stastistikEnamn.Text + " " + datum).Points.AddY(logikhantering.sumSep);
                }
                if (StatistikDatum.Text == "Oktober")
                {
                    chart1.Series.Add(StatistikFnamn.Text + " " + stastistikEnamn.Text + " " + datum).Points.AddY(logikhantering.sumOkt);
                }
                if (StatistikDatum.Text == "November")
                {
                    chart1.Series.Add(StatistikFnamn.Text + " " + stastistikEnamn.Text + " " + datum).Points.AddY(logikhantering.sumNov);
                }
                if (StatistikDatum.Text == "December")
                {
                    chart1.Series.Add(StatistikFnamn.Text + " " + stastistikEnamn.Text + " " + datum).Points.AddY(logikhantering.sumDec);
                }

            }
            catch 
            { 
                textBoxNotifier.Text = "Du kan inte lägga till samma person på samma datum"; 
            }
            
            #region nollställning
            logikhantering.bJan = 0;
            logikhantering.vJan = 0;
            logikhantering.sumJan = 0;

            logikhantering.bFeb = 0;
            logikhantering.vFeb = 0;
            logikhantering.sumFeb = 0;

            logikhantering.bMar = 0;
            logikhantering.vMar = 0;
            logikhantering.sumMar = 0;

            logikhantering.bApr = 0;
            logikhantering.vApr = 0;
            logikhantering.sumApr = 0;

            logikhantering.bMaj = 0;
            logikhantering.vMaj = 0;
            logikhantering.sumMaj = 0;

            logikhantering.bJun = 0;
            logikhantering.vJun = 0;
            logikhantering.sumJun = 0;

            logikhantering.bJul = 0;
            logikhantering.vJul = 0;
            logikhantering.sumJul = 0;

            logikhantering.bAgu = 0;
            logikhantering.vAgu = 0;
            logikhantering.sumAgu = 0;

            logikhantering.bSep = 0;
            logikhantering.vSep = 0;
            logikhantering.sumSep = 0;

            logikhantering.bOkt = 0;
            logikhantering.vOkt = 0;
            logikhantering.sumOkt = 0;

            logikhantering.bNov = 0;
            logikhantering.vNov = 0;
            logikhantering.sumNov = 0;

            logikhantering.bDec = 0;
            logikhantering.vDec = 0;
            logikhantering.sumDec = 0;

            logikhantering.total = 0;
            logikhantering.medel = 0;
            #endregion
        }

        private void button1_Click(object sender, EventArgs e)
        {
            chart1.Series.Clear();
            chart1.Visible = false;
            logikhantering.bJan = 0;
            logikhantering.vJan = 0;
            logikhantering.sumJan = 0;

            logikhantering.bFeb = 0;
            logikhantering.vFeb = 0;
            logikhantering.sumFeb = 0;

            logikhantering.bMar = 0;
            logikhantering.vMar = 0;
            logikhantering.sumMar = 0;

            logikhantering.bApr = 0;
            logikhantering.vApr = 0;
            logikhantering.sumApr = 0;

            logikhantering.bMaj = 0;
            logikhantering.vMaj = 0;
            logikhantering.sumMaj = 0;

            logikhantering.bJun = 0;
            logikhantering.vJun = 0;
            logikhantering.sumJun = 0;

            logikhantering.bJul = 0;
            logikhantering.vJul = 0;
            logikhantering.sumJul = 0;

            logikhantering.bAgu = 0;
            logikhantering.vAgu = 0;
            logikhantering.sumAgu = 0;

            logikhantering.bSep = 0;
            logikhantering.vSep = 0;
            logikhantering.sumSep = 0;

            logikhantering.bOkt = 0;
            logikhantering.vOkt = 0;
            logikhantering.sumOkt = 0;

            logikhantering.bNov = 0;
            logikhantering.vNov = 0;
            logikhantering.sumNov = 0;

            logikhantering.bDec = 0;
            logikhantering.vDec = 0;
            logikhantering.sumDec = 0;

            logikhantering.total = 0;
            logikhantering.medel = 0;
        }

        private void StatistikVisaExcel_Click(object sender, EventArgs e)
        {
            Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
            xlApp.Visible = true;
            Microsoft.Office.Interop.Excel.Workbook xlWorkBook = xlApp.Workbooks.Add(Microsoft.Office.Interop.Excel.XlSheetType.xlWorksheet);
            Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlApp.ActiveSheet;

            Excel.Range chartRange;

            
            Excel.ChartObjects xlCharts = (Excel.ChartObjects)xlWorkSheet.ChartObjects(Type.Missing);
            Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(10, 80, 300, 250);
            Excel.Chart chartPage = myChart.Chart;
            

            chartRange = xlWorkSheet.get_Range("C2", "O2");
            chartPage.SetSourceData(chartRange, Missing.Value);
            chartPage.ChartType = Excel.XlChartType.xlColumnClustered;

            int i = 1, j = 2;
            foreach (ListViewItem lvi in StatistikListView.SelectedItems)
            {
                i = 1;
                foreach (ListViewItem.ListViewSubItem lvsub in lvi.SubItems)
                {
                    logikhantering.RäknaStatistik(int.Parse(StatistikAgnr.Text));
                    xlWorkSheet.Cells[2, 3] = StatistikFnamn.Text;
                    xlWorkSheet.Cells[2, 4] = logikhantering.sumJan;
                    xlWorkSheet.Cells[2, 5] = logikhantering.sumFeb;
                    xlWorkSheet.Cells[2, 6] = logikhantering.sumMar;
                    xlWorkSheet.Cells[2, 7] = logikhantering.sumApr;
                    xlWorkSheet.Cells[2, 8] = logikhantering.sumMaj;
                    xlWorkSheet.Cells[2, 9] = logikhantering.sumJun;
                    xlWorkSheet.Cells[2, 10] = logikhantering.sumJul;
                    xlWorkSheet.Cells[2, 11] = logikhantering.sumAgu;
                    xlWorkSheet.Cells[2, 12] = logikhantering.sumSep;
                    xlWorkSheet.Cells[2, 13] = logikhantering.sumNov;
                    xlWorkSheet.Cells[2, 14] = logikhantering.sumDec;

                }
            }

            #region nollställning
            logikhantering.bJan = 0;
            logikhantering.vJan = 0;
            logikhantering.sumJan = 0;

            logikhantering.bFeb = 0;
            logikhantering.vFeb = 0;
            logikhantering.sumFeb = 0;

            logikhantering.bMar = 0;
            logikhantering.vMar = 0;
            logikhantering.sumMar = 0;

            logikhantering.bApr = 0;
            logikhantering.vApr = 0;
            logikhantering.sumApr = 0;

            logikhantering.bMaj = 0;
            logikhantering.vMaj = 0;
            logikhantering.sumMaj = 0;

            logikhantering.bJun = 0;
            logikhantering.vJun = 0;
            logikhantering.sumJun = 0;

            logikhantering.bJul = 0;
            logikhantering.vJul = 0;
            logikhantering.sumJul = 0;

            logikhantering.bAgu = 0;
            logikhantering.vAgu = 0;
            logikhantering.sumAgu = 0;

            logikhantering.bSep = 0;
            logikhantering.vSep = 0;
            logikhantering.sumSep = 0;

            logikhantering.bOkt = 0;
            logikhantering.vOkt = 0;
            logikhantering.sumOkt = 0;

            logikhantering.bNov = 0;
            logikhantering.vNov = 0;
            logikhantering.sumNov = 0;

            logikhantering.bDec = 0;
            logikhantering.vDec = 0;
            logikhantering.sumDec = 0;

            logikhantering.total = 0;
            logikhantering.medel = 0;
            #endregion
        }
            
            
           
            
       

            





        



        

       

      


                
    }
}
  